AccessTr.neT
Nesneler arasında Yön tuşlarıyla Geçiş - Baskı Önizleme

+- AccessTr.neT (https://accesstr.net)
+-- Forum: Visual Basic .NET (https://accesstr.net/forum-visual-basic-net.html)
+--- Forum: Visual Basic .NET Cevaplanmış Soruları (https://accesstr.net/forum-visual-basic-net-cevaplanmis-sorulari.html)
+--- Konu Başlığı: Nesneler arasında Yön tuşlarıyla Geçiş (/konu-nesneler-arasinda-yon-tuslariyla-gecis.html)

Sayfalar: 1 2


Nesneler arasında Yön tuşlarıyla Geçiş - tetikçi_61 - 09/07/2014

Merhaba arkadaşlar bu sefer yapmaya çalıştığım şey form üzerinde çok sayıda bulunan textbox, 4 adet bulunan combobox ve 1 adette datetimepicker arasında yön tuşlarıyla geçiş yapmak. Nette araştırdım fakat tam anlamıyla net bir bilgi yoktu. Nasıl yapabileceğim konusunda fikri olan ?


Cvp: Nesneler arasında Yön tuşlarıyla Geçiş - alpeki99 - 09/07/2014

1- Form özelliklerinden KeyPreview'i True olarak ayarlaryın.
2- Form olaylarından KeyDowm'a çift tıklayın.

Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles MyBase.KeyDown
If (e.KeyCode = Keys.Right) Then
SendKeys.Send("{TAB}")
End If
End Sub

KeyDown olayında benim Sağ tuş için yazdığım kod bu şekilde.


Cvp: Nesneler arasında Yön tuşlarıyla Geçiş - tetikçi_61 - 09/07/2014

üstadım sağolasın fakat bunda normal olarak tab'a bastığın zamanki gibi davranıyor. Direk olarak hangi ok'a bastıysan o yönde imleci hareket ettirme gibi bir imkanımız yokmudur?


Cvp: Nesneler arasında Yön tuşlarıyla Geçiş - alpeki99 - 09/07/2014

Alıntı:hangi ok'a bastıysan o yönde imleci hareket ettirme

derken mesela aktif bulunduğu kontrolün sağındaki ilk kontrole geçmesinimi istiyorsunuz?


Cvp: Nesneler arasında Yön tuşlarıyla Geçiş - tetikçi_61 - 09/07/2014

sağındaki, solundaki aşağıdaki veya yukarıdakilere de geçecek şekilde. {UP},{DOWN},...vs. eklemeleri varmış denedim fakat olmadı.


Cvp: Nesneler arasında Yön tuşlarıyla Geçiş - alpeki99 - 09/07/2014

İ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.


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