如果删除了Combox输入,则禁用按钮

时间:2016-07-15 04:19:46

标签: vb.net combobox textchanged

在我的项目中,我有一些文本框输入,以及一些组合框,表单上可能有2个索引项。如果没有为两个文本框输入提供输入,那么我会在加载时禁用该按钮,即使我删除了任何文本,它也能很好地工作。但是,我遇到了强制组合框以相同方式运行的问题。然而,这项工作:

Private Sub cboPickShirts_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboPickShirts.SelectedIndexChanged

    InputCheck_3 = True

    If cboPickShirts.SelectedIndex < 0 Then
        InputCheck_3 = False

    End If

    If InputCheck_3 = False Then
        btnInputResult.Enabled = False

    ElseIf InputCheck_3 = True Then
        btnInputResult.Enabled = True

    End If
End Sub

我将InputCheck_3设置为Public Module中的全局变量。在表单加载时,我禁用了我的按钮,并且在我选择其中一个索引项目之前它不会启用。如果输入并删除了任何组合框文本,我将努力再次禁用该按钮,将其保留为空或空。关于我缺少什么或者我可以添加什么以获得结果的任何想法?我想我需要一个变量或事件来注意变化(输入和删除文本)。

2 个答案:

答案 0 :(得分:1)

一行代码

btnInputResult.Enabled = If((cboPickShirts.SelectedIndex<0),False, True)

答案 1 :(得分:1)

您遇到的问题是,当您从ComboBox中删除所选项目时,未触发SelectedIndexChanged事件。我会使用TextBox和ComboBox的TextChanged事件,并给它一个公共处理程序并检查它。像这样的东西

Private Sub TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged, TextBox2.TextChanged, cboPickShirts.TextChanged
    EnableCheck()
End Sub

Private Sub EnableCheck()
    btnInputResult.Enabled = (String.IsNullOrEmpty(TextBox1.Text) And String.IsNullOrEmpty(TextBox2.Text) And ComboBox1.SelectedIndex = -1) 
End Sub

您还可以像文本框一样检查comboBox是否为NullorEmpty。现在,当文本不再与选择匹配时,将启用组合框。