我在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,如果我也从单选按钮中选择一个项目。再次感谢
答案 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