1

我对我的 Visual Basic 2010 中的一个项目还有一个问题。我有 2 个文本框、一个按钮和一个进度条。您必须输入用户名(在 tb1 中)和一个随机密码(在 tb2 中),以便启用按钮,如果我按下它,进度条就会启动。如果我没有在文本框中写入任何文本,我希望禁用该按钮,如果有,则启用该按钮。我试过这段代码,但它不起作用。

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) 
        If TextBox1.Text <> "" And TextBox2.Text <> "" Then
            Button1.Enabled = True
        ElseIf Button1.Enabled = False Then
            MsgBox("Progress Fail.", MsgBoxStyle.Exclamation)
        End If
    End Sub

您对我该如何解决这个问题有任何想法吗?感谢帮助

我也添加了一个带有单选按钮的列表。现在,如果我也从单选按钮中选择一项,我希望启用 button1。再次感谢

4

1 回答 1

1

这需要在文本框的某些事件中完成,而不是按钮。尝试这个:

Private Sub TextBox_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox2.TextChanged, TextBox1.TextChanged
    Button1.Enabled = TextBox1.Text <> "" And TextBox2.Text <> ""
End Sub

在启动时将按钮设置为禁用,它应该可以正常工作。请注意,子用于两个文本框(请参阅Handles部分)。

- -编辑 - -

好的,所以我们在检查中也包含了 ComboBox。我有点不安全......是的,你可以在Handles-part 添加另一个事件,因为这些事件具有相同的签名(=相同类型的相同参数)。但这在我看来有点肮脏。

所以让我们这样做:

Private Sub TextBox_TextChanged(sender As System.Object, e As System.EventArgs) _
     Handles TextBox2.TextChanged, TextBox1.TextChanged

    evaluateUserEntries()
End Sub

Private Sub ComboBox1_SelectedValueChanged(sender As System.Object, e As System.EventArgs) Handles ComboBox1.SelectedValueChanged
    evaluateUserEntries()
End Sub

Private Sub evaluateUserEntries()
    Button1.Enabled = TextBox1.Text <> "" And TextBox2.Text <> "" And ComboBox1.SelectedIndex <> -1
End Sub
于 2013-06-26T16:16:06.160 回答