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

مشكلة في اغلاقForm عن طريق مفتاح Esc

بدأه bnitt في 29 أغسطس 2010 · 5 رد · 955 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اخواتي استخدمت كود الاسكي عند الضغط على Esc يتم اغلاق الواجهة او مثلا استخدام المفتاح F1

لكن اعتقد هناك مشكلة حيث ان التركيز داخل الشاشة قد يكون في احد صناديق النصوص

هذا الكود لكنة لم يعمل

    Private Sub FrmAddCustomers_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
        If e.KeyCode = 27 Then
            Me.Close()
        End If
    End Sub
    Private Sub FrmAddCustomers_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress
        If e.KeyChar = Chr(27) Then
            Me.Close()
        End If
    End Sub
#2

أقترح عليك أن تضع أحداث لجميع صناديق النصوص بحيث يشييك عند إدخال أي زر وعندما يكون الزر المدخل هو Esc أغلق الشاشة

#3

غير الخاصية KeyPreview التابعة للفورم إلى True كي يستقبل الحدث KeyPress الخاص بالفورم أي ضغط من لوحة المفاتيح وسيعمل معك الكود إن شاء الله :)

#4

السلام عليكم

أخي الكريم

يوجد في خصائص الفورم خاصية اسمها CancelButton

وهذه الخاصية هي المسئولة عن جعل أي زر على الفورم يعمل تلقائيا عند الضغط على زر Esc

ولعمل ذلك قم بعمل زر جديد على الفورم وأعطه اسم وليكن btnClose

وضع تحته الكود التالي

me.hide

ثم اختر الفورم ومن الخاصية CancelButton

اختر الزر btnClose

ليتم تنفيذ كود هذا الزر عند الضغط على Esc في أي مكان على الفورم

1
#5

اشكركم اخواني نعم قمت بتغيير الخاصية KeyPreview الى True عندها استقبل الفورم الحدث

#6

الكود الكامل والصحيح لمفتاح ESC

Private Sub about_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress

If e.KeyChar = Chr(27) Then

Me.Close()

End If

End Sub

وفي حدث تحميل الفورم

Private Sub about_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

KeyPreview = True

End Sub

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