[英]Get number of items left in combobox in SuggestAppend AutoComplete mode
我有一個帶有AutoCompleteMode = RecommendationAppend和AutoCompleteSource = ListItems的組合框。
在SuggestAppend中,當用戶輸入字符時,列表框控件將被自動過濾。
我想在用戶輸入期間獲取列表框中的項目數。 在開始時,列表框已完全填充。
我嘗試了以下操作,但它始終返回組合中的項目數,而不是列表框中的已過濾項目數
int count = ItemsComboBox.Items.Count.ToString();
我不確定您要做什么,但是我了解,目標是自動啟用一個按鈕,並非100%確定。
ComboBox類具有稱為ControlAdded和ControlRemoved的事件,在將控件添加到ComboBox.Items或從中刪除時會發生。 因此,您可以在每次添加/刪除控件后檢查comboBox.Items.Count的值。
private void comboBox1_ControlRemoved(object sender, ControlEventArgs e)
{
if (comboBox1.Items.Count == 0) button1.Enabled = false;
}
當然,如果您不僅要檢查0,還需要同時處理ControlAdded和Control Removed事件。您可以雙擊事件名稱旁邊的此事件,以在Visual Studio中使用ComboBox的Properties Windows。將以下行添加到Designer文件中:
this.comboBox1.ControlRemoved += new System.Windows.Forms.ControlEventHandler(this.comboBox1_ControlRemoved);
您可以為兩個事件使用相同的void(當然,這取決於您的項目)。
這摸索出適合我,但我改變了AutoCompleteMode = SuggestAppend
到AutoCompleteMode = Suggest
Public Class Form2
Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Me.ComboBox1.Text = ""
Me.ComboBox1.Items.Add("a")
Me.ComboBox1.Items.Add("aaa")
Me.ComboBox1.Items.Add("combo")
Me.ComboBox1.Items.Add("combobox")
Me.ComboBox1.Items.Add("combobox test")
Me.ComboBox1.Items.Add("common")
Me.ComboBox1.Items.Add("common dialog")
End Sub
Private Sub ComboBox1_TextChanged(sender As Object, e As System.EventArgs) Handles ComboBox1.TextChanged
Dim count As Integer = 0
For Each op As String In ComboBox1.Items
If (op Is Nothing OrElse op.Length < ComboBox1.Text.Length) Then
Continue For
End If
If (ComboBox1.Text = op.Substring(0, ComboBox1.Text.Length)) Then
count += 1
End If
Next
Label1.Text = count
End Sub
End Class
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.