الصفحة الرئيسية » howto » تمرير متغيرات بين Windows Forms Windows دون ShowDialog ()

    تمرير متغيرات بين Windows Forms Windows دون ShowDialog ()

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

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

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

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

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

    OptionsForm

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

    ... قصاصة… .

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

    الفراغ الخاص theform_Closing (مرسل الكائن ، CancelEventArgs e)

    OptionsForm theform = (OptionsForm) sender؛

    // خذ المتغير من نموذج الخيارات. يجب أن يقوم نموذج الخيارات بتعيين هذا المتغير قبل إغلاقه ، ويجب وضع علامة على المتغير كعام.
    stringvar = theform.thestringvariable؛

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