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

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

في شاشة حذف ذاتية، اريد ان اجعل تركيز المستثمر على زري ( حذف - الغاء الامر )
اي بمعنى اخر اريد منعه من التنقل عبر الحقول النصية الموجودة على الشاشة

تم استخدام خاصية 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 ObjectByVal e As System.Windows.Forms.KeyEventArgsHandles Me.KeyDown
    Me
.Button1.Focus()
End Sub 


أما إذا كنت تريد التطبيق على بعض مربعات النص وليس الكل فيكون كالتالي (مع إضافة مربعات النص القصودة بعد كلمة
Handles تفصل بينهم بفاصلة)
- ضع هذا الأمر
PHP كود :
Private Sub TextBox_KeyDown(ByVal sender As ObjectByVal 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

هل بالامكان منع المستثمر من الضغط بالماوس داخل حقل الليست بوكس

والف شكر