تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
درس- طريقة محاكاة KeyASCII في Keypress
#1
كاتب الموضوع : المؤمنة

الدرس: طريقة محاكاة KeyASCII في Keypress .. تقييمه: للمبتدئين ...
إعداد: فرحناز سجّاد حسين فاضل
النسخة: 2003
____________________________________________

كنا زمان مع الvb6 عندما نريد معرفة الحرف المضغوط نستخدم الحدث Keypress ,, ونستخدم الخاصية keyASCII والتي تمرر كوسيط ,,

والآن في الفي بي دوت نت ,, لاتمرر هذه الخاصية كوسيط وإنما هنالك طرق أخرى ,, من بينها KeyChar و KeyCode ,,

والأولى عاملة مع الحدث Keypress ,, وهذه الخاصية هي تابعة e الوسيط الثاني في الأحداث وهو من نوع EventArgs أي "Event Arguments"

وهذه الخاصية - اقصد KeyChar - تحتفظ بالحروف والأرقام والمفاتيح الأخرى مثل [Enter] , [Alt] وغيرها ,, ومثال لها


كود :
Private Sub textbox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles textbox1.KeyPress
If e.KeyChar = Microsoft.VisualBasic.ChrW(13) Then
MsgBox("you press Enter!")
End If
End Sub
ويمكن تحويل كل charecter إلى الASCIICode التابع له بواسطة الدالة ASC ,, وبتطبيق ذلك بتغيير طفيف في المثال السابق نجد أن مايلي هو نفس ماسبق ,,,


كود :
Private Sub textbox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles textbox1.KeyPress
If Asc(e.KeyChar) = 13 Then
MsgBox("you press Enter!")
End If
End Sub
ولإن الدالة KeyChar هي دالة للقراءة فقط "ReadOnly" ولايمكننا إسناد القيم إليها مثل الKeyASCII ,,

فعندما يراد إنهاء عمل حدث PressKey فإننا كنا في vb6 كنا نسند القيمة صفر إلى الوسيط KeyASCII ,,

ولكن في في بي دوت نت الطريقة تختلف ,, لأن الحدث ينتهي عند إسناد القيمة True ل e.Handled

وإذا نريد أن نحاكي الطريقة القديمة نفسها ,, ببعض الحرافة يمكننا ذلك ,, نعرف متغير من نوع Short ونهيئه بالقيمة التالية


كود :
Asc(e.KeyChar)
ثم نرى إن كان هذا المتغير قد أخذ القيمة صفر ,, مثلاً في الكود تحقق شرط واسند له القيمة صفر ,, نسند القيمة True لe.Handled
كما في المثال التالي:



كود :
Private Sub Text1_KeyPress(ByVal eventSender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
Dim KeyAscii As Short = Asc(eventArgs.KeyChar)
KeyAscii = MyValue
KeyAscii = 0
If KeyAscii = 0 Then
eventArgs.Handled = True
End If
End Sub

اتمنى أني توفقت في إيصال المعلومة ...

تحياتي ...
}}}}
تم الشكر بواسطة: zinom
#2
كاتب المشاركة : مشكور

شكراً على الدرس القيم والجميل ... ولكن ماهو الكود المتعلق بإلغاء استخدام المسافة في مربع نص !
}}}}
تم الشكر بواسطة:
#3
كاتب المشاركة : المؤمنة

أولاً عذراً على التأخر ..
وإجابة على سؤالك جرب الكود التالي ...



كود :
Private Sub textbox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles textbox1.KeyPress
If Asc(e.KeyChar) = 32 Then
Textbox1.Text = Textbox1.Text + chr(8)
End If
End Sub
}}}}
تم الشكر بواسطة: zinom


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  طريقة تشغيل كريستال ريبورت بجميع ادارات فيجول نت abdhassan 2 328 28-05-16, 02:16 PM
آخر رد: CLARO
  طريقة مميزة لعمل إعدادات Setting لحفظ اعدادات برنامجك بدون أكواد kslawy 6 1,666 26-05-16, 12:07 PM
آخر رد: CLARO
Brick [مثال] طريقة سهلة مضمونة لفتح اي مشروع من اصدار مختلف الطالب 2 862 14-05-15, 07:55 PM
آخر رد: الطالب
Heart [مقال] شرح طريقة معرفة محتوى الكوكيز sooriaty03 3 1,468 27-12-13, 04:10 PM
آخر رد: رحوووم
  طريقة تغيير الوان الفورم من ListView 3booody 4 1,335 19-08-13, 05:01 PM
آخر رد: 3booody
  طريقة عمل برنامج زخرفة النصوص 3booody 3 1,548 19-06-13, 11:36 PM
آخر رد: Hassan Khamees
  طريقة من أجمل الطرق لجعل الفورم على شكل صورة عندك أسامة أحمد 63 7,412 12-05-13, 10:39 PM
آخر رد: APP
  درس مترجم - طريقة الكتابة في صفحة الإنترنت والضغط على الأزرار من خلال برنامجك آليا RaggiTech 0 467 03-10-12, 02:11 PM
آخر رد: RaggiTech
  درس - طريقة عمل الباركود وكيفية إستغلاله في البرامج المحاسبية RaggiTech 0 10,337 03-10-12, 01:53 PM
آخر رد: RaggiTech
  تعلم كيف تصنع HotKey باي مفتاح يعجبك حتي الموس لبرنامجك(طريقة سهلة جدا) RaggiTech 0 395 03-10-12, 09:52 AM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم