2013-06-26 148 views
1

我還有一個關於在我的visual basic 2010中的項目的問題。我有2個文本框,一個按鈕和一個進度欄。你必須輸入用戶名(在tb1)和一個隨機密碼(在tb2),所以按鈕被啓用,進度條開始,如果我按下它。如果我沒有在文本框中寫入任何文本並且啓用了該功能,我希望該按鈕被禁用。我試過這個代碼,但它不工作。VB 2010文本框和按鈕啓用/禁用

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被啓用,如果我也從單選按鈕中選擇一個項目。再次感謝

+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 

將按鈕設置爲在啓動時禁用,它應該可以正常工作。 請注意,該子工具用於兩個文本框(請參閱Handles部分)。

---編輯---

好了,所以我們包括組合框,以及在檢查。 我有點不安全......是的,你可以添加另一個事件到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 
+0

哇感謝的人的TextChanged事件!只是最後一件事。如果2個文本框中有文本,並且用戶從我的組合框中選擇了一個值,我希望啓用button1。我們會做出這樣的事情?再次感謝,我在1周之前開始了VB。 Button1.Enabled = TextBox1.Text <>「」And TextBox2.Text <>「」And ComboBox1.SelectedValue = <>「」 – user2524715

+0

非常感謝您的先生:) – user2524715

+0

啊,對不起,但我加了一個電臺按鈕列表。我想要button1被啓用,如果我從單選按鈕中選擇一個項目。 – user2524715