Winforms Combobox选择Forms fontchange上的文本

时间:2017-08-04 18:22:43

标签: .net vb.net winforms

到目前为止,我从未注意到Comboboxes上的奇怪行为。要了解发生了什么,您可以创建一个最小的示例。打开一个新项目,将文本框,两个组合框与transform-origin: 0 0; transform: translateZ(-2px) scale(3); height: 100vh; (什么是首字母)和按钮放在上面,然后将以下代码粘贴到Form。

DropDownStyle=DropDown

发生的事情是,在按下Button1表格的情况下,字体大小会增加,而Comboboxes会选择他的文字!这样我的GUI就好了。

有人知道如何摆脱这种情况并使Comboboxes获得预期的功能吗?

1 个答案:

答案 0 :(得分:2)

这似乎是框架中的一些问题。认为它是“有趣的行为”。但你可以这样做

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    Me.Font = New Font(Me.Font.Name, Me.Font.Size + 1)
    TextBox1.Focus()
    ComboBox1.SelectionLength = 0
    ComboBox2.SelectionLength = 0

End Sub

如果您在评论中指出的cbo是分类,而不是在超类中添加

Private Sub ComboBox2_Layout(sender As Object, e As LayoutEventArgs) Handles ComboBox2.Layout
    DirectCast(sender, ComboBox).SelectionLength = 0
End Sub

这适用于表格

上的所有cbo
Private Sub Form1_Layout(sender As Object, e As LayoutEventArgs) Handles MyBase.Layout
    For Each c As Control In Me.Controls
        Dim combo As ComboBox = TryCast(c, ComboBox)
        If combo IsNot Nothing AndAlso combo.DropDownStyle = ComboBoxStyle.DropDown Then
            combo.SelectionLength = 0
        End If
   Next
End Sub