화살표 키를 사용하여 컨트롤 (위/아래)을 탐색하려고합니다.
예제를 시도해보고 새 form1을 만든 다음이 코드를 붙여 넣으십시오.vb.net의 화살표 키로 이동
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim tb As New TextBox
Dim cb As New CheckBox
Dim cbb As New ComboBox
Dim b1 As New Button
Dim b2 As New Button
With Me
.KeyPreview = True
.Size = New Size(350, 200)
With .Controls
.Add(tb)
With tb
.TabIndex = 0
.Location = New Point(95, 20)
.Text = "This is"
End With
.Add(cb)
With cb
.TabIndex = 1
.Location = New Point(95, 50)
.Checked = True
.Text = "Example checkbox"
.AutoSize = True
End With
.Add(cbb)
With cbb
.TabIndex = 2
.Location = New Point(95, 80)
.Text = "an Example"
.DropDownStyle = ComboBoxStyle.DropDownList
End With
.Add(b1)
With b1
.TabStop = False
.Location = New Point(90, 130)
.Text = "Nothing"
End With
.Add(b2)
With b2
.TabStop = False
.Location = New Point(170, 130)
.Text = "Exit"
AddHandler b2.Click, AddressOf b2_Click
End With
End With
End With
End Sub
Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If e.KeyCode = Keys.Up Then
e.Handled = True
Me.SelectNextControl(Me.ActiveControl, False, True, True, True)
End If
If e.KeyCode = Keys.Down Then
e.Handled = True
Me.SelectNextControl(Me.ActiveControl, True, True, True, True)
End If
End Sub
Private Sub b2_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Me.Close()
End Sub
End Class
어떻게 될까요?
프로그램을 시작하고 화살표로 탐색 할 때 컨트롤 주위에 '초점 맞추기'가 없으며 일부 상황에서는 tabstop = false를 사용하여 컨트롤에 "포커스가 벗어났습니다"라는 포커스가 있습니까?
하지만 ...
화살표가 그 탐색이 잘 된 후 내가 컨트롤을 통해 TAB 키를 한 번 통과하면, RECT가의 표시 집중하고 모든 것이 OK입니다.
여기에 어떤 문제가있을 수 있습니까? 화살표로 탐색하는 방법은 프로그램 시작 직후 탭 키와 동일하게 동작합니까? 여기 C# code
그리고 VB 내 번역은 다음과 같습니다
의 중복 가능성 [초점 사각형은 탭 키를 누를 때까지 표시되지 않는 이유는 무엇입니까? (http://stackoverflow.com/questions/9226433/why-is-focus-rectangle-not - show-tab-key-pressed) –
지금은 복제본 일지 모르지만 여기서는 조사 할 수있는 완전한 코드이며 내 예제에는 문제가있는 라디오 버튼이 없습니다. 또한 윈도우 7! –
제안 된 수정 프로그램이 작동하는지 확인하십시오. 문제의 원인이되는 사용자 설정임을 알리는 메시지입니다. –