تقييم الموضوع :
  • 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 , baha
#2
كاتب المشاركة : مشكور

شكراً على الدرس القيم والجميل ... ولكن ماهو الكود المتعلق بإلغاء استخدام المسافة في مربع نص !
}}}
تم الشكر بواسطة: baha
#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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  طريقة إنشاء برنامج طباعة ملصقات الباركود ملهمـ 1 4,398 22-12-21, 05:09 PM
آخر رد: alessam4pro
  طريقة عمل نسخة لتثبيت فيجوال ستوديو بدون نت معاند الحظ 12 8,088 11-12-21, 04:26 PM
آخر رد: اسلام الكبابى
  طريقة تشغيل كريستال ريبورت بجميع ادارات فيجول نت abdhassan 3 7,068 26-02-21, 08:57 PM
آخر رد: علي النقيب
  طريقة إضافة اختصار للصنف في شاشة المبيعات ملهمـ 5 5,905 14-07-20, 12:24 PM
آخر رد: ابراهيم ايبو
Heart [مقال] شرح طريقة معرفة محتوى الكوكيز sooriaty03 5 6,201 11-02-20, 03:18 PM
آخر رد: DK-x
  [VB.NET] سؤال عن طريقة نسخ كل الروابط و اسم الرابط من موقع انترنت toedi 3 3,052 16-01-20, 07:34 AM
آخر رد: toedi
  طريقة تقسيم كودك البرمجة الي سطرين أو أكثر كم تريد dametucorazon 1 3,928 06-09-19, 12:55 AM
آخر رد: سعود
  شرح طريقة حساب الكمية والبيع بأكثر من وحدة ملهمـ 7 5,687 30-08-19, 03:38 AM
آخر رد: atefkhalf2004
  طريقة استخدام مكتبة internet download manager في برنامجك kslawy 3 5,360 30-07-19, 07:06 AM
آخر رد: سعود
  [مقال] اسهل طريقة لحتراف البرمجة dasktop 1 2,547 02-11-18, 01:48 AM
آخر رد: حريف برمجة

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


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