2014-10-20 63 views
2

我有什麼:

我有兩個組框,每個組框中都有一個文本框。第三個文本框放在兩個組框之外。爲什麼我的基本默認.acceptbutton不起作用?

enter image description here

按鈕1是默認的接受形式加載按鈕。

我需要什麼:

當按鈕1被點擊(或按下鍵進入),我需要按鈕2成爲默認接受按鈕。

我的問題:

按鈕3成爲默認的,儘管我的代碼接受按鈕而非按鈕2。

我的代碼:

Public Class Form1 

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    GroupBox1.Enabled = True 
    GroupBox2.Enabled = False 
    Me.AcceptButton = Button1 
End Sub 

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    MessageBox.Show("Button 1 pressed!") 
    GroupBox1.Enabled = False 
    GroupBox2.Enabled = True 
    Me.AcceptButton = Button2 
End Sub 

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 
    MessageBox.Show("Button 2 pressed!") 
    GroupBox1.Enabled = True 
    GroupBox2.Enabled = False 
    Me.AcceptButton = Button1 
End Sub 

End Class 

回答

2

問題是你按下按鈕後1按鈕3獲得焦點。
您可以通過添加代碼將焦點鎖定到您在按鈕1單擊事件中需要的按鈕來修復它。 「Button2.Focus()」等。

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    MessageBox.Show("Button 1 pressed!") 
    GroupBox1.Enabled = False 
    GroupBox2.Enabled = True 
    Me.AcceptButton = Button2 
    Button2.Focus() 
End Sub 

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 
    MessageBox.Show("Button 2 pressed!") 
    GroupBox1.Enabled = True 
    GroupBox2.Enabled = False 
    Me.AcceptButton = Button1 
    Button1.Focus() 
End Sub 
+0

This works。我曾嘗試使用'.Focus'而不是'.AcceptButton',但我沒有意識到兩者都可以/應該同時使用。感謝您提供的代碼。 – 2014-10-20 17:05:56