بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
ارغب في تحسين تعامل المستثمر مع شاشة / ادخال ذاتية / في مثالي المرفق، باتاحة المجال له
1- ان يتم الانتقال من حقل الى اخر من حقول تلك الشاشة عن طريق الضغط على زر Enter
2- كما ارغب بان يتم اظهار حقول الارقام ( هاتف 1 - هاتف 2 - جوال - فاكس ) بالارقام العربية مثل 4555637 وليس
بالارقام الهندية التي من الصعب قراءتها
ارجو تعديل المثال المرفق
والف الف شكر
للتقل بمفتاح 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
:eek:
بالنسبة لكتابة الأرقام بالإنجليزي :
في حدث الـ 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
أو يمكنك تغييرها من خصائص
مربع النص مباشرة
[color="#0000cd"][b]شكرا اخي
kslawy
على ماتفضلت به من جعل كتابة الارقام تاخد شكل العربي ( الاجنبي)
بارك الله فيك[/b][/color]
ا[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) في حدث مربع النص الأول . كان ممكن نضع الكود لكل مربع نص علي حدا ولكن بهذه الطريقة يتم اختصار الأكواد
شكرا اخي
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 يحيث يصبح فعال وعملي !!!!!!!!!!!!!
والف شكر
kafi كتب :شكرا اخي
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 يحيث يصبح فعال وعملي !!!!!!!!!!!!!
والف شكر
السلام عليكم ورحمة الله وبركاته
تفضل أخي الكريم
هذا تعديل لكود الأخ Genius_Live - من بعد إذنه
كود :
[color=blue][FONT=Consolas]Protected[/FONT][/color][color=#000000][FONT=Consolas] [COLOR=blue]Overrides[/color] [color=blue]Function [/color][/FONT][/COLOR][color=#000000][FONT=Consolas]ProcessCmdKey[/FONT][/color][color=#000000][FONT=Consolas]([/FONT][/color][color=#000000][FONT=Consolas][COLOR=blue]ByRef [/color][/FONT][/COLOR][color=#000000][FONT=Consolas]msg [/FONT][/color][color=blue][FONT=Consolas]As [/FONT][/color][color=#000000][FONT=Consolas]System.Windows.Forms.[/FONT][/color][color=#2B91AF][FONT=Consolas]Message[/FONT][/color][color=#000000][FONT=Consolas], [/FONT][/color][color=#000000][FONT=Consolas][COLOR=blue]ByVal [/color][/FONT][/COLOR][color=#000000][FONT=Consolas]keyData [/FONT][/color][color=blue][FONT=Consolas]As [/FONT][/color][color=#000000][FONT=Consolas]System.Windows.Forms.[/FONT][/color][color=#2B91AF][FONT=Consolas]Keys[/FONT][/color][color=#000000][FONT=Consolas]) [/FONT][/color][color=blue][FONT=Consolas]As [/FONT][/color][COLOR=blue][FONT=Consolas]Boolean
[/FONT][/COLOR][color=blue][FONT=Consolas]If [/FONT][/color][color=#000000][FONT=Consolas]msg.WParam.ToInt32() = [/FONT][/color][color=#0000FF][FONT=Consolas]CInt[/FONT][/color][color=#000000][FONT=Consolas]([/FONT][/color][color=#2B91AF][FONT=Consolas]Keys[/FONT][/color][color=#000000][FONT=Consolas].Enter[/FONT][/color][color=#000000][FONT=Consolas]) [/FONT][/color][color=#0000FF][FONT=Consolas]Then[/FONT][/color]
[color=blue][FONT=Consolas]If [/FONT][/color][color=#000000][FONT=Consolas][COLOR=blue]TypeOf [/color][/FONT][/COLOR][color=#000000][FONT=Consolas][COLOR=blue]Me[/color][/FONT][/COLOR][color=#000000][FONT=Consolas].ActiveControl [/FONT][/color][color=blue][FONT=Consolas]Is [/FONT][/color][color=#2B91AF][FONT=Consolas]Button [/FONT][/color][COLOR=#0000FF][FONT=Consolas]Then
[/FONT][/COLOR][color=blue][FONT=Consolas]Return[/FONT][/color][color=#000000][FONT=Consolas][COLOR=blue]MyBase[/color][/FONT][/COLOR][color=#000000][FONT=Consolas].ProcessCmdKey[/FONT][/color][color=#000000][FONT=Consolas]([/FONT][/color][color=#000000][FONT=Consolas]msg[/FONT][/color][color=#000000][FONT=Consolas], [/FONT][/color][color=#000000][FONT=Consolas]keyData[/FONT][/color][COLOR=#000000][FONT=Consolas])
[/FONT][/COLOR][COLOR=#0000FF][FONT=Consolas]Else
[/FONT][/COLOR][color=#2B91AF][FONT=Consolas]SendKeys[/FONT][/color][color=#000000][FONT=Consolas].Send[/FONT][/color][color=#000000][FONT=Consolas]([/FONT][/color][color=#A31515][FONT=Consolas]"{Tab}"[/FONT][/color][COLOR=#000000][FONT=Consolas])
[/FONT][/COLOR][color=blue][FONT=Consolas]Return[/FONT][/color][COLOR=blue][FONT=Consolas]True
[/FONT][/COLOR][color=blue][FONT=Consolas]End[/FONT][/color][COLOR=blue][FONT=Consolas]If
[/FONT][/COLOR][color=blue][FONT=Consolas]End[/FONT][/color][COLOR=blue][FONT=Consolas]If
[/FONT][/COLOR][color=blue][FONT=Consolas]Return[/FONT][/color][color=#000000][FONT=Consolas][COLOR=blue]MyBase[/color].ProcessCmdKey[/FONT][/COLOR][color=#000000][FONT=Consolas]([/FONT][/color][color=#000000][FONT=Consolas]msg[/FONT][/color][color=#000000][FONT=Consolas], [/FONT][/color][color=#000000][FONT=Consolas]keyData[/FONT][/color][COLOR=#000000][FONT=Consolas])
[/FONT][/COLOR][color=blue][FONT=Consolas]End[/FONT][/color][color=#000000][FONT=Consolas] [COLOR=blue]Function[/color][/FONT][/COLOR]
بالتوفيق
عفوا الأكواد ظهرت بشكل غير صحيح
وهذا هو التصحيح
كود :
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
بالتوفيق
شكرا اخي
soriaty على اجابتك
ولكن بعد نسخ الكود...
وعند معالجة البرنامج
[ATTACH=CONFIG]3226[/ATTACH] ظهر وجود رسالة خطأ
ReturnMybass is not declare
اعمل على ( win8 - visual 12)