عندما تقوم ببرمجة تطبيق Windows Forms ، ستحتاج دائمًا إلى الحصول على متغيرات من نافذة نموذج ثانوية ، مثل نموذج خيارات أو طلب بحث منبثق.

سوف يخبرك معظم الأدلة هناك بأن عليك فتح النموذج الثاني مع ShowDialog () ، الذي يمنع المستخدم من فعل أي شيء آخر حتى يغلق نافذة النموذج الثاني. لن يعمل ذلك جيدًا في مربع حوار البحث / الاستبدال ، على سبيل المثال. لن تعمل أيضًا جيدًا للنماذج المنبثقة المخصصة.

الطريقة السريعة لتمرير المتغيرات بين النماذج هي استخدام المندوبين. يمكنك تعيين eventhandler لحدث Closing من النموذج الثاني ثم معالجة الحدث في النموذج الأول. يتيح لك ذلك التقاط المتغيرات قبل إغلاق نافذة النموذج الثاني.

في هذا التمرين ، سنفترض أن لدينا شكلين:

النموذج الرئيسي

OptionsForm

سنفترض أيضًا أننا قد نقرنا على نوع من الزر الذي يفتح OptionsForm مع استدعاء طريقة Show (). الآن دعونا نلقي نظرة على السحر:

……. snip…….

OptionsForm theform = new OptionsForm();theform.Closing += new CancelEventHandler(theform_Closing);theform.Show();

}

private void theform_Closing(object sender, CancelEventArgs e){

OptionsForm theform = (OptionsForm)sender;

// Grab the variable from the options form. The options form should set this variable before it closes, and the variable should be marked as public. string localvar = theform.thestringvariable;

}

هذا كل ما في الامر.

أعلى نصائح:
التعليقات: