מעבר בין משתנים בין Windows Forms Windows ללא ShowDialog ()
כאשר אתה מתכנת יישום של Windows Forms, יהיה עליך תמיד לקבל משתנים מחלון טופס שני, כגון טופס אפשרויות או בקשת חיפוש קופץ.
רוב המדריכים שם יגידו לך כי אתה צריך לפתוח את הטופס השני עם ShowDialog (), אשר חוסם את המשתמש לעשות כל דבר אחר עד שהם סגרו את חלון הטופס השני. זה לא יעבוד טוב מאוד עבור שיח למצוא / להחליף, למשל. זה גם לא יעבוד טוב מאוד עבור טפסים מותאמים אישית קופצים.
הדרך המהירה להעברת משתנים בין הטפסים היא באמצעות נציגים. ניתן להגדיר eventhandler עבור אירוע הסגירה של הטופס השני, ולטפל באירוע בצורה הראשונה. זה מאפשר לך ללכוד משתנים לפני חלון הטופס השני נסגר.
בשביל התרגיל הזה, נניח שיש לנו שתי צורות:
MainForm
אופציות
אנו נניח עוד כי לחצנו על כפתור כלשהו שפותח את OptionsForm בשיטת שיחת () Show (). עכשיו בואו נסתכל על הקסם:
... צלוף ... .
OptionsForm theform = אפשרויות חדשפורם ();
eporm.Closing + = CancelEventHandler חדש (theform_Closing);
-LL.Low ();חלל פרטי theform_Closing (שולח אובייקט, CancelEventArgs e)
OptionsFormform את השולח = form (OptionsForm);
/ / לתפוס את המשתנה מתוך טופס אופציות. טופס האופציות צריך להגדיר משתנה זה לפני שהוא נסגר, והמשתנה צריך להיות מסומן כציבורי.
מחרוזת localvar = theform.thestringvariable;
זה כל מה שיש.