VB 2010文本框和按钮启用/禁用

时间:2013-06-26 16:05:06

标签: visual-studio-2010 button textbox

我在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

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

我也添加了一个带单选按钮的列表。现在我想要按钮1,如果我也从单选按钮中选择一个项目。再次感谢

1 个答案:

答案 0 :(得分: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

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

--- --- EDIT

好的,所以我们在支票中也包括ComboBox。 我有点不安全......是的,您可以在Handles - 部分添加另一个事件,因为事件具有相同的签名(=相同类型的相同参数)。但在我看来,这有点肮脏。

所以让我们这样做:

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