如果删除了组合框输入,则禁用按钮

Disable Button If Combox Input Deleted

在我的项目中,我有几个文本框输入和一些组合框,表单上可能有 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

我在 Public Module 中将 InputCheck_3 设置为全局变量。在表单加载时,我禁用了我的按钮,直到我 select 一个索引项目时它才会启用。如果输入并删除了任何组合框文本,将其保留为空或为空,我会努力让按钮再次禁用。关于我遗漏了什么或我可以添加什么以获得结果的任何想法?我想我需要一个变量或事件来通知更改(输入和删除文本)。

一行代码

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

您遇到的问题是,当您从 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

您还可以使用与文本框相同的方式检查组合框是否为 NullorEmpty。就目前而言,当文本不再匹配选择时,组合框将被启用。