我的ComboBox
IsEditable
设置为True
,因此我可以在TextBox
中输入ComboBox
。现在,我希望DropDownList打开,所以我为它创建了一个Attached Property
:
Public Shared Function GetShowDropDown(obj As DependencyObject) As Boolean
Return obj.GetValue(IsDigitOnlyProperty)
End Function
Public Shared Sub SetShowDropDown(obj As DependencyObject, value As Boolean)
obj.SetValue(IsDigitOnlyProperty, value)
End Sub
Public Shared ReadOnly ShowDropDownProperty As DependencyProperty = DependencyProperty.RegisterAttached("ShowDropDown", GetType(Boolean), GetType(ControlBehaviour), New UIPropertyMetadata(False, AddressOf OnShowDropDown))
Private Shared Sub OnShowDropDown(sender As Object, e As DependencyPropertyChangedEventArgs)
Dim comboBox As ComboBox = sender
Dim showDropDown As Boolean = e.NewValue
If showDropDown Then
AddHandler comboBox.PreviewKeyUp, AddressOf DoShowDropDown
Else
RemoveHandler comboBox.PreviewKeyUp, AddressOf DoShowDropDown
End If
End Sub
Private Shared Sub DoShowDropDown(sender As Object, e As KeyEventArgs)
Dim comboBox As ComboBox = sender
If comboBox.Text.Length > 0 Then
comboBox.IsDropDownOpen = True
Else
comboBox.IsDropDownOpen = False
End If
End Sub
每当我输入ComboBox
时,DropDownList会打开,但有1个缺陷。让我解释一下:
TextBox
的{{1}}中输入“T”,则会在“T”后面添加“est”以显示“测试”。ComboBox
中(如果选择了某些内容,当你输入时会出现正常行为。我不希望发生最后一颗子弹,如果我输入TextBox
,则可能没有选择任何内容,因此我可以继续键入“测试”。这是我按下字母“T”的截图。我希望这能解释我的问题。
我认为应该发生的事情是我必须以某种方式取消选择测试或设置它以便选择从TextBox
中的第2个字符开始,但我不知道如何做到这一点。
要添加其他内容,当我按Enter键时,我希望它隐藏DropDown。
答案 0 :(得分:0)
设置组合框的此属性
IsTextSearchEnabled="True"
答案 1 :(得分:0)
我们将使用SelectedIndex
属性执行此操作。我们将选择-1指数。据了解,不能将任何项目作为-1,因此不会选择任何项目。无论你怎么说,这些项目的编号或列表都从0开始。
但是,假设你有5个项目,你不能给它6号,它会显示运行时错误。
为了你的额外帮助,你不希望一切都应该消失,只是应该来,对吗?为此,您可以将combobox
的所有文本保存在变量或textbox
中,然后将其与之后输入的文本一起带回combobox
。
我们将在计时器事件中通过将间隔设置为1毫秒来执行第二个要求,以便它可以更频繁地记录更改。您可以在任何您想要的事件中执行此操作(TextChanged
等。)
combobox.SelectedIndex = -1
对于不替换现有文本的文本:
Private Sub Form1_Load () Handles Mybase.Load
Timer1.Interval = 1
End Sub
Private Sub Timer1_Tick () Handles Timer1.Tick
Textbox1.Text = Combobox.Text
End Sub
并将现在输入的文本指定为另一个变量,我们将编写以下代码:
Combobox.Text = Textbox1.Text & a 'assuming 'a' is the text you entered later.
我希望它能帮助你并完美地工作!