簡體   English   中英

在超過100個項目的下拉列表中檢查項目

[英]Checking for items in a drop down list of 100+ items

我有一個comboBox,其中包含從數據庫(sql express)填充的項目。 我想防止用戶使用自己的自定義輸入來保存文件。 我想要的是單擊保存后,然后出現某種提示,例如:“沒有輸入列表中的有效項目。” 當前正在使用請假事件。 這是代碼:

  private void comboBox3_Leave(object sender, EventArgs e)
    {
        ComboBox cb = (ComboBox)sender;
        if (!comboBox3.Items.Contains(cb.Text))
        {
            MessageBox.Show("Not a valid Cari-med Item!");
        }

它可以工作,但是我只是想看看是否還有其他方法可以完成所要問的事情。 我已經嘗試在研究后將樣式更改為dropDownList。 該方法對我不起作用,因為用戶必須能夠根據鍵入的每個字符鍵入並查看建議。 用戶不能滾動太多的記錄。 還有其他方法可以做到這一點嗎?

如果項目無效,則可以使用Validating事件而不是Leave事件,並設置e.Cancel = True 如果事件被取消,焦點將停留在ComboBox

這是VB.NET一個簡單示例:

Private Sub ComboBox1_Validating(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles ComboBox1.Validating

    If Not CType(sender, ComboBox).Items.Contains(CType(sender, ComboBox).Text) Then
        MsgBox("Not a valid item!")
        e.Cancel = True
    End If

End Sub

如果要在Sub / Function執行此操作,則可以在執行代碼之前檢查有效的SelectedItem

If IsNothing(Me.ComboBox1.SelectedItem) Then
    MsgBox("Not a valid item!")
    Me.ComboBox1.Focus() 'optional step
Else
    'your save function
End If

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM