تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] منع المستخدم من اغلاق الفورم ب Alt+f4
#1
السلام عليكم احبتي في الله
بحثت كثيرا في الانترنت عن طريقة منع المستخدم من اغلاق الفورم بالضغط على مفتاح Alt+F4
===========================
فوجدت كود متداول على المواقع يقوم بالمهمة ولكن يكتب في حدث الـ key_down لكل الأدوات الموجودة على الفورم .. وهذا مرهق جدا
==========================
هل من كود لمنع اغلاق الفورم بالت اف4
الرد }}}
تم الشكر بواسطة:
#2
كود :
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        e.Cancel = True
    End Sub
انظر للكود ضمن حدث الاغلاق
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
الرد }}}
تم الشكر بواسطة: Easy4ever , ali.alfoly , tarek
#3
تفضل اخي الكريم

كود :
Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
        e.Cancel = True
    End Sub
الرد }}}
تم الشكر بواسطة: Easy4ever
#4
وعليكم السلام ورحمة الله وبركاته

أخوي اتبع الخطوات التاليه
في بداية الامر عرف متغير تحت كلمة Public Class مباشرة من نوع Boolean وسمه اي اسم وليكن KeyClose
PHP كود :
Dim KeyClose As Boolean 

في حدث FormLoad للفورم ضع هذا الكود
PHP كود :
KeyClose False 

وفي حدث FormClosing للفورم ضع هذا الكود
PHP كود :
IF KeyClose  False Then
     e
.Cancel True
End 
IF 

وفي زر الإغلاق ضع هذا الكود
PHP كود :
KeyClose True 

-------------------------------------------------------

من الممكن ان يدور في ذهنك ماذا فعلنا ؟!

الإجابة
في بداية الامر قمنا بتعريف متغير من نوع منطقي يا نعم يا لا
حتى نستفيد منه اننا نعرف هل ضغط على زر إغلاق أو قفلتها بطريقة غير مناسبة مثل Alt+F4


ومن ثم قمنا جعلنا عندما يفتح الفورم يضع قيمتها تساوي False إي ( لا )

ومن ثم قلنا له إذا تم إعطاء للفورم امر أغلاق بإي طريقه ما ( وهو حدث FormClosing ) تحقق من متغير KeyClose في حال كان المتغير قيمته [False] قم بعملية إلغاء الأمر الإغلاق خلاف هذا يقوم بإغلاق الفورم طبيعي

ومن ثم قمنا بجعل متغير KeyClose تساوي ( True ) إي ( نعم ) في زر إغلاق حتى إذا ذهب للحدث FormClosing ورئ متغير KeyClose لا تساوي [False] يقوم بإغلاق الفورم طبيعي


-------------------------------------------------------

بالتوفيق
Big Grin
<---------------------------------------------------------------->

الرد }}}
تم الشكر بواسطة: ali.alfoly , tarek , رضوان الجماعي
#5
سامحني اخي سعود ما رئيت مشاركتك

شكرا للاخ Easy4ever
اخونا tarek رزقه وفير
الرد }}}
تم الشكر بواسطة: Easy4ever , سعود , tarek
#6
في الغالب احتاج طريقة لعمل البرنامج فابحث وابحث وفي الاخير لا اجد سوى حيلة تلبي نصف المطلوب.
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
الرد }}}
تم الشكر بواسطة:
#7
شكرا لكم
طريقة الاستاذ سعود والاستاذ على الفولي منعت الاغلاق أصلا .. مش راضي يقفل لا بال close button ولا بالكود Me.close
وشكرا والله على اهتمامكم

طريقة الاستاذ Foreever بعد الضغط مرة واحدة على زر الاغلاق الذي به الكود KeyClose = True
ثم الضغط على Alt+F4 سيتم غلق البرنامج
جربوها
شاكر جدا لاهتمامكم
الرد }}}
تم الشكر بواسطة:
#8
إقتباس :طريقة الاستاذ Foreever بعد الضغط مرة واحدة على زر الاغلاق الذي به الكود KeyClose = True
ثم الضغط على Alt+F4 سيتم غلق البرنامج
المفروض ان زر الاغلاق بعده يتم اغلاق البرنامج يعني بعد كود
كود :
KeyClose = True
اكتب كود اغلاق الفورم
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
الرد }}}
تم الشكر بواسطة:
#9
السلام عليكم...

1. إزالة الأمر "إغلاق" (Close) من قائمة النظام التابعة للنافذة:

* ضع التصريحات التالية في بداية تعريف الـ Class:

كود :
Private Declare Function GetSystemMenu Lib "user32" Alias "GetSystemMenu" (ByVal hwnd As Integer, ByVal bRevert As Integer) As Integer
    Private Declare Function RemoveMenu Lib "user32" Alias "RemoveMenu" (ByVal hMenu As Integer, ByVal nPosition As Integer, ByVal wFlags As Integer) As Integer

    Private Const MF_BYPOSITION As Integer = &H400

* في الحدث Load التابع للـ Form اكتب الكود التالي لحذف الأمر إغلاق و الفاصل الذي قبله من قائمة النظام الخاصة بالنافذة. الكود سيؤدي أيضاً إلى تعطيل زر إغلاق النافذة:

كود :
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim hSysMenu As Integer

        hSysMenu = GetSystemMenu(Me.Handle, 0)
        RemoveMenu(hSysMenu, 6, MF_BYPOSITION)
        RemoveMenu(hSysMenu, 5, MF_BYPOSITION)
    End Sub

2. منع Alt+F4 من العمل.

* اضبط الخاصية KeyPreview للـ Form على True.

* اكتب الكود التالي في الحدث KeyDown للـ Form:

كود :
Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
        If e.Alt And e.KeyCode = Keys.F4 Then
            e.Handled = True
        End If
    End Sub

* ملاحظة: قائمة النظام (System Menu) للنافذة هي القائمة التي تظهر عند النقر على رمز النافذة بالزر الأيسر، أو بالنقر على شريط عنوان النافذة بالزر الأيمن.


3. نرجو الاستفادة و السلام.
بِسْمِ اللهِ الرَّحْمَنِ الرَّحِيمِ ( وَ مَا تُقَدِّمُوا لِأَنفُسِكُم مِّنْ خَيْرٍ تَجِدُوهُ عِندَ اللهِ هُوَ خَيْراً وَ أَعْظَمَ أَجْراً ) صَدَقَ اللهُ الْعَظِيمُ
الرد }}}
تم الشكر بواسطة: tarek , اسلام الكبابى
#10
ما شاء الله تبارك الله
حلوة قوي الفكرة دي يا اخ ناجي
طيب لي سؤال هل من الممكن بدل ان اجعله غير ممكن ان اجعله يقوم بدور اخر غير الاغلاق
بمعني اجعلة ممكن لاكن لا يغلق الفورم بل ينفذ دالة اخري
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  كيف تصمم واجهات برامجك بطريقة الكبار .. مقدمة في تصميم واجهات المستخدم ali.alfoly 11 7,773 09-10-25, 08:24 AM
آخر رد: مصمم هاوي
  مشكلة في عرض الفورم بالحجم المحدد مصمم هاوي 1 250 29-09-25, 03:17 AM
آخر رد: مصمم هاوي
  [VB.NET] حفظ تنسيق الفورم ثم تطبيقة علي فورم اخر فيجوال بيسك abo ragab 7 1,233 09-07-25, 12:45 AM
آخر رد: abo ragab
  مساعدة في تمرير اسم المستخدم سيد أحمد 3 950 01-07-25, 12:51 AM
آخر رد: أبو خالد الشكري
  إغلاق الفورم مع حذف جميع البيانات الموجودة به صالح عبدالله 10 1,042 19-04-25, 08:54 PM
آخر رد: Kamil
  كيف يمكن تحريك الفورم بأستخدام زر heem1986 2 587 30-03-25, 01:58 AM
آخر رد: heem1986
  [سؤال] تغيير الفورم الرئيسي عند تشغيل البرنامج في Visual Studio مع .NET 8؟ silverlord 2 654 09-03-25, 03:52 AM
آخر رد: silverlord
  ماهو سبب اغلاق الفورم صالح عبدالله 2 514 26-02-25, 02:40 PM
آخر رد: صالح عبدالله
  استفسار عن تنسيق الفورم في حالة تغيرالفورم من وضع العادي الي التكبير fireswored1 4 828 22-01-25, 09:04 PM
آخر رد: fireswored1
  اغلاق فورم و فتح فورم بعد 1 دقيقة العيدروس 3 396 30-11-24, 06:01 PM
آخر رد: altoki939

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


يقوم بقرائة الموضوع: