我有非常基本的winforms应用程序,有两个按钮'btn_OK','btn_cancel'和'Textbox1'。 这是我的代码:
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.KeyPreview = True
btn_cancel.TabIndex = 0
btn_OK.TabIndex = 1
TextBox1.TabIndex = 2
TextBox1.TabStop = False
TextBox1.Multiline = True
TextBox1.Text = "Quick brown fox say's hello world."
btn_cancel.Focus()
End Sub
Private Sub btn_cancel_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles btn_cancel.KeyDown
If e.KeyCode = Keys.Left Then
btn_OK.Focus()
End If
End Sub
Private Sub btn_OK_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles btn_OK.KeyDown
If e.KeyCode = Keys.Right Then
btn_cancel.Focus()
End If
End Sub
End Class
想法是用文本填充文本框,将焦点设置为btn_cancel并按下键。左移将焦点移动到btn_OK。 但那不会发生。
按下左键焦点跳转到文本框而不是btn_OK,即使文本框的TabStop属性设置为false!
这是非常意外和不受欢迎的 这里发生了什么以及如何获得预期的功能?
答案 0 :(得分:0)
这不是必需的,请停止尝试并使用Visual Studio选项菜单中的TabOrder
页面定义自定义标签位置。
查看>的TabOrder
在示例中,聚焦的第一个按钮为“0”,如果我按右键则会聚焦“1”,如果我按下左键则会聚焦“0”,等等。