繁体   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