للتقل بمفتاح Enter في النافذة
ضع هذه الــ Function في اي مكان في كود الــ Form
كود :
Protected Overrides Function ProcessCmdKey _
(ByRef msg As System.Windows.Forms.Message, _
ByVal keyData As System.Windows.Forms.Keys) As Boolean
If msg.WParam.ToInt32() = CInt(Keys.Enter) Then
SendKeys.Send("{Tab}")
Return True
End If
Return MyBase.ProcessCmdKey(msg, keyData)
End Function
بالنسبة لكتابة الأرقام بالإنجليزي :
في حدث الـ FormLoad
كود :
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.TextBox1.RightToLeft = Windows.Forms.RightToLeft.No
End Sub
27-06-13, 08:57 PM (آخر تعديل لهذه المشاركة : 27-06-13, 08:59 PM {2} بواسطة salim5d.)
ا[b]خي الكريم
Genius Live
ان الكود الذي تفضلت به رائــــــــــــــــع، من اجل جعل التنقل بين الحقول يتم عن طريق الضغط على زر Enter
[COLOR="#B22222"]
[u]ولكن فيه مشكلة خطيرة للغاية [/u][/COLOR]
وهي عند الوصول الى زر الحفظ، والضغط على زر
enter
المفروض ان يتم حفظ البيانات
ولكن الذي يحدث......
ان الزر لا يستجيب لحدث الحفظ وينتقل الى الزر التالي
[b][SIZE=5]وهذه مشكلة كبيرة
ارجو تعديل الكود في ظل المشكلة المطروحة
والف شكر
[/b][/SIZE][/b]
Private Sub TextBox1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox4.KeyDown, TextBox3.KeyDown, TextBox2.KeyDown, TextBox1.KeyDown
If e.KeyCode = Keys.Enter Then
SendKeys.Send("{Tab}")
End If
End Sub
لاحظ للـ Handles اللي في نهاية السطر الأول من الكود تم تجميع جميع أحداث مربعات النصوص (KeyDown) في حدث مربع النص الأول . كان ممكن نضع الكود لكل مربع نص علي حدا ولكن بهذه الطريقة يتم اختصار الأكواد
27-06-13, 11:42 PM (آخر تعديل لهذه المشاركة : 28-06-13, 12:15 PM {2} بواسطة salim5d.)
شكرا اخي
kslawy
[HTML]Private Sub TextBox1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox4.KeyDown, TextBox3.KeyDown, TextBox2.KeyDown, TextBox1.KeyDown
If e.KeyCode = Keys.Enter Then
SendKeys.Send("{Tab}")
End If
End Sub[/HTML]
على هذا الكود الرائع، وفعلا هو شعال مائة مائة ولكـــــــــــــــــن
المشكلة انني مضطر ان اضعه في حدث ال Keydown لكافة العناصر المتواجدة على الشاشة، ولكن وجدت الكود الذي تفضل به الاخ Genius_Live
مختصر، اي بمعنى اخر، اقوم باستدعائه مرة واحدة فقط عند تحميل النموذج، ولكن به مشكلة العيب الدي شرحته،
ولا اعرف ان كان يمكن اصلاح كود الاخ Genius_Live يحيث يصبح فعال وعملي !!!!!!!!!!!!!
[HTML]Private Sub TextBox1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox4.KeyDown, TextBox3.KeyDown, TextBox2.KeyDown, TextBox1.KeyDown
If e.KeyCode = Keys.Enter Then
SendKeys.Send("{Tab}")
End If
End Sub[/HTML]
على هذا الكود الرائع، وفعلا هو شعال مائة مائة ولكـــــــــــــــــن
المشكلة انني مضطر ان اضعه في حدث ال Keydown لكافة العناصر المتواجدة على الشاشة، ولكن وجدت الكود الذي تفضل به الاخ Genius_Live
مختصر، اي بمعنى اخر، اقوم باستدعيه مرة واحدة فقط عند تحميل النموذج، ولكن به مشكلة العيب الدي شرحته،
ولا اعرف ان كان يمكن اصلاح كود الاخ Genius_Live يحيث يصبح فعال وعملي !!!!!!!!!!!!!
والف شكر
السلام عليكم ورحمة الله وبركاته
تفضل أخي الكريم
هذا تعديل لكود الأخ Genius_Live - من بعد إذنه
Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, ByVal keyData As System.Windows.Forms.Keys) As Boolean
If msg.WParam.ToInt32() = CInt(Keys.Enter) Then
If TypeOf Me.ActiveControl Is Button Then
Return MyBase.ProcessCmdKey(msg, keyData)
Else
SendKeys.Send("{Tab}")
Return True
End If
End If
Return MyBase.ProcessCmdKey(msg, keyData)
End Function