تعطيل زر إغلاق الفورم - سي شارب - مقـــالات - Top Coder
Welcome to our Site
الدخــول Or تسجـــيل
الأحد
2016-12-04
11:19 PM
تسجــــيل | دخـــول
الرئيسية » مقالات » سي شارب

تعطيل زر إغلاق الفورم
تعطيل زر الإغلاق

مقـــدمه
طريقه عمل Disable لزر إغلاق الفورم .

حيث تستطيع عمل Disable لكل من زر Maximze و Minimize من خلال الفورم بان تقوم بوضع القيمة false للبروبرتي MaximizeBox و MinimizeBox على الترتيب , لكن لا يوجد في الفورم بروبرتي تقوم بتعطيل زر الأغلاق , وسنقوم بعمل ذلك من خلال داله API .
دوال API
سنحتاج الى دالتين API لنقوم بهذه العمليه , حيث تقوم الداله الأولى بتحديد مؤشر Intptr لصندوق التحكم الخاص بالفورم في الذاكره  , وذلك من خلال مؤشر Intptr الفورم نفسها في الذاكره , ومن خلال ذلك المؤشر تقوم الداله الثانيه بعمليه التعطيل والتشغيل لزر الأغلاق حسب حاجتك , وهذا كود الدالتين , ولا تنسى تضمين النيم سبيس System.Runtime.InteropServices لكي تستطيع عمل دوال API  
API Methods
 
حيث يمرر للداله الاولى القيمة this.Handle وهو مؤشر الفورم التي تريد العمل عليها , لتقوم هذه الداله بتحديد مؤشر قاشمة التحكم التي تحوي الازرار الثلاثه Close , Maximize , Minimize داخل الذاكره , ثم يمرر هذا المؤشر الى الداله الثانيه , والتي تتضمن ثلاث معاملات , بيانها كالتالي :
1- tMenu وهو كما قلنا مئشر قائمة التحكم .
2- targetItem وهو كود الزر الذي تريد التحكم به , وحيث اننا نريد التحكم بزر الاغلاق , فسيكون الكود الخاص به هو 0xF060 .
3- targetStatus وهو قيمة الحالة التي تريد ارسالها للزر , حيث 0 تعني تشغيل , و 1 تعني تعطيل .

لذلك سنقوم بارسال القيمة 1 الى الزر لكي يتم تعطيله كما في الكود .
Disable the button
 
وبنفس الطريقه يمكنك ارسال 0 الى الداله بعد تمرير المؤشر , لاعادة تشغيل الزر , ولإكتمال الموضوع يمكنك كما ذكرنا سابقاً استخدام الخاصيتين MaximizeBox و MinimizeBox لتعطيل وتشغيل زري التحكم الاخرين , وبهذا يكون لديك تحكم كامل في صندوق التحكم في الفورم .
التحكم في البرامج الأخرى
ايضاً يمكنك الخروج عن نطاق الفورم الخاصه بك , والتحكم في فورم البرامج الاخرى العامله على النظام , فيمكنك عن طريق تحديد مؤشر الفورم في الذاكره , فقط تمرير ذلك المؤشر للداله الأولى لتقم هذه الداله بتحديد مؤشر صندوق التحكم , وبالتالي تعطيل زر الأغلاق , والآن سنكرر عرض كيفية تحديد مؤشرات النوافذ الاخرى العامله , والتي تم ذكرها من قبل في موضوع ( كيفية عمل Send Keys ) , حيث سنقوم من خلال الكلاس Process بتحديد كل العمليات العامله على النظام , ومن ثم تحديد ما له نافذه منها , وتحديد المؤشر الخاص به , في النهاية ستكون لديك قائمة بكل النوافذ العامله , يمكنك اختيار أيها , وتعطيلها كيفما تشاء , وهذا كود لكيفية تحديد النوافذ العامله من خلال الكلاس Process , ولا تنسى تضمين النيم سبيس System.Diagnostics الموجود بها الكلاس Process .
Outer Programs
 
ومن خلال تحديد المؤشر لكل نافذه , يمكنك بعد ذلك بكل بساطه تطبيق التعطيل بعد تمرير ذلك المؤشر الى الدالة الاولى لتحديد مئشر صندوق التحكم .
ختـــام
تم الاستعانه في بعذ أجزاء الموضوع بمقاله في موقع كود بروجيكت , للإطلاع على المقاله من الرابط
http://www.codeproject.com/KB/miscctrl/FormsCloseButtonExample.aspx
تحميل المشروع
 Written by :  Mohammed Mahmoud
الفئة: سي شارب | أضاف: ham_mody2000 (2011-10-16 2:55 AM)
مشاهده: 1849 | الترتيب: 0.0/0


أترك تعليقك من خلال حسابك على الفيس بوك

تعليقات مشتركي الموقع

مجموع المقالات: 0
إضافة تعليق يستطيع فقط المستخدمون المسجلون
[ التسجيل | دخول ]
طريقة الدخول
بحث
Our Facebook community

تم إطلاق صفحة توب كودر على الفيس بوك

Advertisment
الأحـــدث
hitstatus
Copyright Mohammed Mahmoud © 2016
إنشاء موقع مجاني с uCoz