بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
في شاشة حذف ذاتية، اريد ان اجعل تركيز المستثمر على زري ( حذف - الغاء الامر )
اي بمعنى اخر اريد منعه من التنقل عبر الحقول النصية الموجودة على الشاشة
تم استخدام خاصية tabstop للحقول وجعلها على قيمة false
التنقل عبر التاب اصبح غير متاح امام المستخدم، ولكــــــــــــــــــــــن
ماذا لو ضغط بالماوس داخل احد تلك الحقول ؟؟؟
ملاحظة:
ارجو ان لا يكون الحل بجعل خاصية enable للحقول على القيمة false
وذلك من شانه، جعل الحقول رمادية اللون........وانا لا اريد هذا الحل
ارجو تعديل المثال المرفق، في اطار ما ذكرت اعلاه
والف شكر
Private Declare Function SetCapture Lib "user32" (ByVal hwnd As Integer) As Long
Private Sub txt_Customer_MouseEnter(sender As Object, e As EventArgs) Handles txt_Customer.MouseEnter, txt_fax.MouseEnter, txt_Mobile.MouseEnter, txt_Phone1.MouseEnter, txt_Phone2.MouseEnter, txt_Zatea_id.MouseEnter
SetCapture(Me.Handle)
End Sub
ربما هناك طرق اكثر فعالية ولكن هذا ما وجدته اثناء بحثي قبل فترة لتنفيذ هذا الامر
الف شكر اخي
سنوسي
على اجابتك
فعلا الكود الذي تفضلت به، نجح في منع المستثمر من الضغط على الحقول النصية عن طريق الماوس،
ولكــــــــــــــن
بحاجة الى منع تغيير مؤشر الماوس عند الاقتراب من الحقول النصية، اي ان يبقى المؤشر على شكل سهم
وجدت حل ابسط
ضع الكود
كود :
SendKeys.Send("{TAB}")
في حدث GotFocus للتيكست بوكس
شكرا اخي
سنوسي على تواصلك معي
فعلا الحل الثاني واضح اكثر للفهم، وابسط
ولكن مازالت مشكلة شكل مؤشر الماوس ، الذي يجب ان يبقى على شكل سهم، لا ان يتغير الى الشكل المعتاد i عند الوقوف على النص
من خصائص التكست بوكس غير Cursor الى default
>> ولاحظت انه يمكن الضغط بزر الماوس الايسر غير ShortcutsEnabled من نافذة الخصائص للتكست بوكس الى false
السلام عليكم ورحمة الله وبركاته
من خلال سؤالك وتفاعل الأخ سنوسي معك له كل التحية والتقدير، فهمت أن هدفك منع المستخدم من نسخ البيانات التي في مربعات النص
فالحل من ناحية الفأرة (الماوس) قد ذكر الأخ سنوسي في رده الأخير.
ولكن تبقى ناحية لوحة المفاتيح (الكيبورد)
إذا كنت تريد التطبيق على جميع مربعات النص يكون كالتالي
- من نافذة الخصائص غيّر الخاصية KeyPreview لـ Form إلى True
- ثم ضع هذا الأمر (مع تغيير الاسم Button1 إذا كان مختلفاً)
PHP كود :
Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
Me.Button1.Focus()
End Sub
أما إذا كنت تريد التطبيق على بعض مربعات النص وليس الكل فيكون كالتالي (مع إضافة مربعات النص القصودة بعد كلمة Handles تفصل بينهم بفاصلة)
- ضع هذا الأمر
PHP كود :
Private Sub TextBox_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) _
Handles TextBox1.KeyDown
If e.Modifiers = Keys.Control Then
e.Handled = True
sender.SelectionLength = 0
End If
End Sub
وإذا كنت متضايقاً من شكل مؤشر الفأرة على مربعات النص فمن نافذة الخصائص غيّر الخاصية Cursor لمربعات النص إلى Default
السلام عليكم ورحمة الله وبركاته
ابو رائد ردك رائع وتنسيقك للرد أروع
لو سمحت بالله مر على موضوعي اللي تحت هذا
هو موضوعي الوحيد
والله مسبب لي دوخة
ولك الشكر الجزيل
السلام عليكم
شكرا اخوتي
سنوسي
ابو رائد
على اجابتكم الرائعة والمفيدة
بقيت لدي مشكلة وحيدة فقط، موضحة بالصورة المرفقة
وهي تتمثل بامكانية المستثمر من الضغط بالماوس على الليست بوكس المتضمنة ( زبون - مورد - شريك) .....مما يؤدي الى تحريك المؤشر الى ما تم الضغط عليه
رغم انني وضعت في حدث Gotfocus لليست بوكس الكود المذكور senkeytab
هل بالامكان منع المستثمر من الضغط بالماوس داخل حقل الليست بوكس
والف شكر