在我的项目中,我有一些文本框输入,以及一些组合框,表单上可能有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
中的全局变量。在表单加载时,我禁用了我的按钮,并且在我选择其中一个索引项目之前它不会启用。如果输入并删除了任何组合框文本,我将努力再次禁用该按钮,将其保留为空或空。关于我缺少什么或者我可以添加什么以获得结果的任何想法?我想我需要一个变量或事件来注意变化(输入和删除文本)。
答案 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。现在,当文本不再与选择匹配时,将启用组合框。