السلام عليكم ورحمة الله وبركاته
إخواني وأحبابي في الله
أقدم لكم طريقة لكيفية
إلغاء زر الإغلاق في أي فورم موجود لديك ..
قم بوضع الكود التالي في موديول عادي
CODE
Option Explicit
Public Declare Function GetSystemMenu Lib "user32.dll" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Private Declare Function DrawMenuBar Lib "user32.dll" (ByVal hwnd As Long) As Long
Private Declare Function DeleteMenu Lib "user32.dll" (ByVal hwnd As Long, ByVal nPosition As Long, ByVal uflags As Long) As Long
Private Declare Function GetForegroundWindow Lib "user32.dll" () As Long
Sub DisableCloseBox()
Const MF_BYCOMMAND As Long = &H0&
Const SC_CLOSE As Long = &HF060
Const SC_MAXIMIZE As Long = &HF030
Const SC_MINIMIZE As Long = &HF020
Const SC_RESTORE As Long = &HF120
Dim hMenu As Long
Dim hwnd As Long
Dim ret As Long
hwnd = GetForegroundWindow()
hMenu = GetSystemMenu(hwnd, 0&)
ret = DeleteMenu(hMenu, SC_CLOSE, MF_BYCOMMAND)
ret = DrawMenuBar(hwnd)
End Sub
الآن انتقل للفورم المطلوب إلغاء زر الإغلاق فيه ، وضع الكود التالي في حدث تنشيط الفورم
CODE
Private Sub UserForm_Activate()<br />
DisableCloseBox<br />
End Sub<br />
<br />
بالطبع بعد ما قمت بإلغاء زر الإغلاق تحتاج إلى إنشاء زر أمر لإغلاق الفورم من خلاله ، لذا قم بإنشاء زر أمر CommandButton1 على سبيل المثال وضع الكود التالي فيه
CODE
Private Sub CommandButton1_Click()<br />
Unload Me<br />
End Sub<br />
<br />
المهم في الموضوع أنه يمكنك استخدام الكود في أي فورم تستخدمه داخل المشروع الخاص بك
أرجو أن يكون الموضوع مفيد لكم ، ولا تنسونا بدعوة بظهر الغيب
رابط الملف من هنا
أخوكم في الله / ياسر خليل أبو البراء