الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

طريقة محاكاة KeyASCII في Keypress

مغلق
بدأه the_bleiver في 24 أبريل 2006 · 4 رد · 793 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

طريقة محاكاة KeyASCII في Keypress

كنا زمان مع ال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

اتمنى أني وفقت في ماقدمت ,,

وآخر دعوانا أن الحمدلله رب العالمين ,,, ;)

أختكم المؤمنة ,,,

(ومَنْ يَتَّقِ اللهَ يَجْعَلْ لَهُ مَخْرَجاً وَيَرْزُقُهُ مِنْ حَيْثُ لَاْ يَحْتَسِبْ وَمَنْ يَتَوَكَّلْ عَلَى اللهِ فَهُوَ حَسْبُهُ)

فرحناز سجّاد حسين فاضل - مهندسة كمبيوتر

ela-rasool-allah.gif

#2

السلام عليكم ورحمة الله وبركاته

يعطيك ألف عافية درس جميل وفادني فعلاً ;) :D :)

#3

بالتوفيق ,,,

(ومَنْ يَتَّقِ اللهَ يَجْعَلْ لَهُ مَخْرَجاً وَيَرْزُقُهُ مِنْ حَيْثُ لَاْ يَحْتَسِبْ وَمَنْ يَتَوَكَّلْ عَلَى اللهِ فَهُوَ حَسْبُهُ)

فرحناز سجّاد حسين فاضل - مهندسة كمبيوتر

ela-rasool-allah.gif

#5

بالتوفيق ,,,

(ومَنْ يَتَّقِ اللهَ يَجْعَلْ لَهُ مَخْرَجاً وَيَرْزُقُهُ مِنْ حَيْثُ لَاْ يَحْتَسِبْ وَمَنْ يَتَوَكَّلْ عَلَى اللهِ فَهُوَ حَسْبُهُ)

فرحناز سجّاد حسين فاضل - مهندسة كمبيوتر

ela-rasool-allah.gif

هذا الموضوع مغلق.

مواضيع مشابهة