Домашня » як » Передати змінні між Windows Forms Windows без ShowDialog ()

    Передати змінні між Windows Forms Windows без ShowDialog ()

    Коли ви розробляєте програму Windows Forms, вам неодмінно потрібно буде отримувати змінні з другого вікна форми, наприклад, форми варіантів або спливаючого запиту пошуку..

    Більшість керівництв розповість вам, що ви повинні відкрити другу форму за допомогою ShowDialog (), яка блокує користувача від будь-якого іншого, поки вони не закриють друге вікно форми. Наприклад, для діалогового вікна пошуку / заміни цього не буде добре. Він також не буде працювати дуже добре для користувальницьких звертається спливаючих форм.

    Швидкий спосіб передавати змінні між формами використовує делегатів. Ви можете встановити подію для події закриття другої форми і обробляти подію в першій формі. Це дозволяє захоплювати змінні до закриття другого вікна форми.

    Для цієї вправи ми припустимо, що ми маємо дві форми:

    ГоловнаФорма

    OptionsForm

    Далі ми припустимо, що ми натиснули якусь кнопку, яка відкриває OptionsForm за допомогою виклику методу Show (). Тепер давайте подивимося на магію:

    …. відривати… .

    OptionsForm theform = new OptionsForm ();
    theform.Closing + = новий CancelEventHandler (theform_Closing);
    theform.Show ();

    private void theform_Closing (відправник об'єкта, CancelEventArgs e)

    OptionsForm theform = (OptionsForm) відправник;

    // Візьміть змінну з форми опцій. У формі опцій слід встановити цю змінну перед її закриттям, а змінна повинна бути позначена як загальна.
    string localvar = theform.thestringзмінний;

    Це все, що потрібно.