Прослеђивање варијабли између Виндовс Формс Виндовса без СховДиалог ()
Када програмирате апликацију за Виндовс Формс, увек ћете морати да добијете променљиве из другог прозора форме, као што је форма опција или промпт за искачући прозор..
Већина водича ће вам рећи да морате отворити други образац са СховДиалог (), који блокира да корисник не ради ништа друго док не затворе други прозор форме. Ово, на пример, неће добро функционисати за дијалог проналажења / замене. Такође неће добро функционисати за прилагођене нацртане попуп обрасце.
Најбржи начин за прослеђивање варијабли између образаца је коришћење делегата. Можете подесити евентхандлер за догађај затварања другог облика, и обрадити догађај у првом облику. Ово вам омогућава да ухватите променљиве пре него што се други прозор прозора затвори.
За ову вежбу претпоставићемо да имамо два облика:
МаинФорм
ОптионсФорм
Даље ћемо претпоставити да смо кликнули на неку врсту дугмета које отвара ОптионсФорм са Схов () позивом методе. Погледајмо сада магију:
…. снип… .
ОптионсФорм тхеформ = нев ОптионсФорм ();
тхеформ.Цлосинг + = нови ЦанцелЕвентХандлер (тхеформ_Цлосинг);
тхеформ.Схов ();привате воид тхеформ_Цлосинг (објекат пошиљалац, ЦанцелЕвентАргс е)
ОпцијеФорм тхеформ = (ОптионсФорм) пошиљалац;
// Узмите варијаблу из обрасца опција. Форма опција треба да постави ову променљиву пре него што се она затвори, а варијабла треба да буде означена као јавна.
стринг лоцалвар = тхеформ.тхестрингвариабле;
То је све.