Subscribe to How-To Geek Претплатите се на Како да монструм

Important! This is an automatic machine translated page. If you can read english, you should Click Here to read the original English version of the article.

Pass Variables between Windows Forms Windows without ShowDialog() Пасс вариаблес између Уиндоус Уиндоус Обрасци без СхоуДиалог ()

When you are programming a Windows Forms application, you will invariably need to get variables from a second form window, such as an options form or popup search prompt. Када се програм Уиндоус Формс, ви ћете неизбежно морати да се променљиве из другог облика прозора, као што су форму или падајући опција претраге линији.

Most of the guides out there will tell you that you have to open the second form with ShowDialog(), which blocks the user from doing anything else until they've closed the second form window. Већина водичи тамо ће вам рећи да сте да отворите другу форму са СхоуДиалог (), који блокира кориснику радиш било шта друго све док не буду затворене Други облик прозора. This won't work very well for a find/replace dialog, for instance. Ово неће радити добро за проналажење / Реплаце Диалог, на пример. It also won't work very well for custom drawn popup forms. Такође се неће радити врло добро прилагођени искачући прозор извучени форме.

The quick way to pass variables between the forms is using Delegates. Брз начин да се прође између променљивих облика користи делегата. You can set an eventhandler for the Closing event of the second form, and handle the event in the first form. Можете да подесите евентхандлер за затварања манифестације у другом облику, и регулатор догађај у првом разреду. This allows you to capture variables before the second form window has closed. Ово вам омогућава да ухватите променљиве пред Други облик је прозор затворен.

For this exercise, we're going to assume that we have two forms: За ову вежбу, идемо да претпоставимо да имамо два облика:

MainForm МаинФорм

OptionsForm ОптионсФорм

We're going to further assume that we've clicked some sort of button that opens the OptionsForm with a Show() method call. Идемо даље претпоставити да смо кликнули на неки тастер да се отвара са ОптионсФорм Прикажи () позива метод. Now let's take a look at the magic: Сада погледајмо на магију:

……. ... .... 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; ниска лоцалвар = тхеформ.тхестрингвариабле;

} )

That's all there is to it. То је све што је на њега.

This article was originally written on 09/20/06 Tagged with: Овај рад је првобитно написана на 09/20/06 означене са: Programming Програмирање

Daily Email Updates Дневни Е-маил Обнове

You can get our how-to articles in your inbox each day for free. Можете добити наше чланке у инбокс-у сваког дана бесплатно. Just enter your name and email below: Једноставно унесите ваше име и емаил адресу испод:


Name: Име:
Email: Емаил:

Comments (2) Коментари (2)

  1. cypher Цыпхер

    I guess this works better : Ваљда ово ради боље:
    theform.FormClosing += new FormClosingEventHandler(theform_Closing); тхеформ.ФормЦлосинг + = нови ФормЦлосингЕвентХандлер (тхеформ_Цлосинг);

    Thanks it helped me a lot to figure it out anyway. Хвала то ми је много помогао да то схватим свеједно.

  2. Rama krishna Рама је Кришна

    it worked for me as well in great deal она је за мене као и на велику

    A big thanks for the person who has given the hint Велико хвала за лице које је дао наговештај


Our Friends Наши Пријатељи
Getting Started Почетак рада


About How-To Geek О Како да монструм
What Is That Process? Шта је то процес?
svchost.exe Свцхост.ексе
jusched.exe јусцхед.ексе
dwm.exe дум.ексе
ctfmon.exe Цтфмон.ексе
wmpnetwk.exe умпнетук.ексе
wmpnscfg.exe умпнсцфг.ексе
rundll32.exe РУНДЛЛ32.ЕКСЕ
wfcrun32.exe уфцрун32.ексе
Ipoint.exe Ипоинт.ексе
Itype.exe Итыпе.ексе
Wfica32.exe Уфица32.ексе
Mobsync.exe Мобсынц.ексе
conhost.exe цонхост.ексе
Dpupdchk.exe Дпупдцхк.ексе Adobe_Updater.exe Адобе_Упдатер.ексе

Copyright © 2006-2009 HowToGeek.com. Цопыригхт © 2006-2009 ХоуТоГеек.цом. All Rights Reserved. Сва права задржана.