Public Sub TabIndexeGit(ByVal i As Integer)
For Each ctl As Control In Me.Controls
If ctl.TabIndex = i Then
ctl.Focus()
End If
Next
End Sub
Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles MyBase.KeyDown
If (e.KeyCode = Keys.Down) Then
If (ActiveControl.TabIndex = 11) Then
TabIndexeGit(0)
Else
TabIndexeGit(ActiveControl.TabIndex + 1)
End If
End If
If (e.KeyCode = Keys.Up) Then
If (ActiveControl.TabIndex = 0) Then
TabIndexeGit(11)
Else
TabIndexeGit(ActiveControl.TabIndex - 1)
End If
End If
If (e.KeyCode = Keys.Right) Then
TabIndexeGit(ActiveControl.TabIndex + 4)
End If
If (e.KeyCode = Keys.Left) Then
TabIndexeGit(ActiveControl.TabIndex - 4)
End If
End Sub
İstediğiniz şey yukarıda yazdığım basit mantık ile olmaz. Siz daha ileri seviye bir istekte bulunuyorsunuz. Bence çok gerek yok gibi çünkü bunu ayarlamak çok zor. Eğer form üzerindeki kontroller belirli bir düzene sahip ise ekteki çözüm işe yarayabilir ancak diğer türlü çözüm zor.
AccessTr.Net teknik konular içeren bir sitedir. Bu tip sitelerde en iyi şekilde yardım alabilmeniz için Site Kurallarını mutlaka okumanız ve buna göre hareket etmeniz lazım.