2014-10-20 64 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