منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : مساعدة فى التنقل بين text بالضغط بمفتاح inter
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله وبركاته

ارجو المساعدة بالتنقل بين التكست بمفتاح انتر

حيث ان الكود ادناه فلح فى الفورم الاول ولم يعمل فى الفورم 2 او 3
PHP كود :
Private Sub Form_KeyPress(KeyAscii As Integer)
    
On Error Resume Next
    
If KeyAscii vbKeyReturn Then
        KeyAscii 
0
        Dim i 
As Long: For Me.Count 1 To 0 Step -1
            
If Me.Controls(i).Name Me.ActiveControl.Name And TypeName(Me.Controls(1)) = "TextBox" Then
                Me
.Controls(1).SetFocus
                
Exit For
            
End If
        
Next i
    End 
If 
End Sub
السلام عليكم
PHP كود :
Private Sub Text1_KeyPress(KeyAscii As Integer)
If 
KeyAscii 13 Then
Text2
.SetFocus
End 
If
End Sub 
.....

لاتنس تغيير الخاصية KeyPreview إلى True لكل فورم تريد فيه هذا الأسلوب في التنقل بين الادوات

وجدت هذا الكود وهو أفضل
كود :
Private Sub Form_KeyPress(KeyAscii As Integer)
    If TypeName(Me.ActiveControl) = "TextBox" _
    Or TypeName(Me.ActiveControl) = "CommandButton" Then
        If KeyAscii = vbKeyReturn Then
            KeyAscii = 0
            Dim i As Long: For i = Me.Count - 1 To 0 Step -1
                If Me.Controls(i).Name = Me.ActiveControl.Name Then
                    If TypeName(Me.Controls(i - 1)) = "TextBox" _
                    Or TypeName(Me.Controls(i - 1)) = "CommandButton" Then
                        Me.Controls(i - 1).SetFocus
                        Exit For
                    End If
                End If
            Next i
        End If
    End If
End Sub

.....
طريقة أستخدام زر Enter للتنقل بين TextBox ...


بسم الله الرحمن الرحيم ...

===================

قم بتشغيل الفيجوال بيسيك .. ثم أختر منه من مربع الحوار Standard EXE وبعد ذلك

قم بأضافة التالي على الفورم


1-Text1
2-Text2
3-Text3
4-Text4
5-Text5

الأن سوف نقوم باضافة أوامر البرمجة ....

ضع هذا الكود في التصريحات جنرال في أعلى صفحة الكود .. طبعا الكود راح يترتب على التوالي ..


========


كود:

Private Declare Function LoadKeyboardLayout Lib "user32" Alias _
"LoadKeyboardLayoutA" (ByVal pwszKLID As String, ByVal _
flags As Long) As Long


Private Sub Text1_GotFocus()
' لجعل الكتابه بالعربي
Call LoadKeyboardLayout("00000401", 1)
End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then Text2.SetFocus
Dim t As Integer
t = KeyAscii

If t = 8 Then Exit Sub
If (t < 48 Or t > 57) Then KeyAscii = 0
End Sub

Private Sub Text2_GotFocus()
' لجعل الكتابه بالعربي
Call LoadKeyboardLayout("00000401", 1)
End Sub

Private Sub Text2_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then Text3.SetFocus
End Sub

Private Sub Text3_GotFocus()
' لجعل الكتابه بالعربي
Call LoadKeyboardLayout("00000401", 1)
End Sub

Private Sub Text3_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then Text4.SetFocus
End Sub

Private Sub Text4_GotFocus()
' لجعل الكتابه بالعربي
Call LoadKeyboardLayout("00000401", 1)
End Sub

Private Sub Text4_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then Text5.SetFocus
End Sub

Private Sub Text5_GotFocus()
' لجعل الكتابه بالعربي
Call LoadKeyboardLayout("00000401", 1)
End Sub

Private Sub Text5_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Dim t As Integer
t = KeyAscii
End If

End Sub


==========================

وبس ... طبعا هذه الأكواد خاصة للكي برس KeyPress وخصوصا بالزر أنتر ... وفي هذا
الكود مناداة LoadKeyboardLayout للكتابة بالعربي .. على طول بدون تحويل .. أتوقع الكل فاهم .. وهذا لا يحتاج إإلى شرح ..

منقول