ส่งตัวแปรระหว่าง Windows Forms Windows โดยไม่มี ShowDialog ()

วีดีโอ: ส่งตัวแปรระหว่าง Windows Forms Windows โดยไม่มี ShowDialog ()

วีดีโอ: ส่งตัวแปรระหว่าง Windows Forms Windows โดยไม่มี ShowDialog ()
วีดีโอ: Window 7 วิธีเปลี่ยนภาพพื้นหลังหน้าจอคอม(wallpaper) ง่ายๆ 2024, มีนาคม
ส่งตัวแปรระหว่าง Windows Forms Windows โดยไม่มี ShowDialog ()
ส่งตัวแปรระหว่าง Windows Forms Windows โดยไม่มี ShowDialog ()
Anonim

เมื่อคุณกำลังเขียนโปรแกรมแอ็พพลิเคชัน Windows Forms คุณจะต้องรับตัวแปรจากหน้าต่างแบบฟอร์มที่ต้องการเช่นฟอร์มตัวเลือกหรือป๊อปอัปค้นหา

คำแนะนำส่วนใหญ่จะบอกคุณว่าคุณต้องเปิดฟอร์มที่สองด้วย ShowDialog () ซึ่งจะบล็อกผู้ใช้ไม่ให้ทำอะไรอื่นจนกว่าจะปิดหน้าต่างแบบฟอร์มที่สอง การดำเนินการนี้จะไม่ทำงานได้ดีสำหรับกล่องโต้ตอบการค้นหา / แทนที่เช่น นอกจากนี้ยังจะไม่ทำงานได้ดีสำหรับรูปแบบป๊อปอัปแบบกำหนดเอง

วิธีที่รวดเร็วในการส่งตัวแปรระหว่างแบบฟอร์มจะใช้ Delegates คุณสามารถตั้ง eventhandler สำหรับเหตุการณ์การปิดบัญชีของฟอร์มที่สองและจัดการเหตุการณ์ในฟอร์มแรกได้ นี้ช่วยให้คุณสามารถจับตัวแปรก่อนปิดหน้าต่างแบบที่สอง

สำหรับการออกกำลังกายนี้เราจะสมมติว่าเรามีสองรูปแบบ:

MainForm

OptionsForm

เราจะสมมติต่อไปว่าเราได้คลิกปุ่มบางปุ่มที่เปิด OptionsForm ด้วยการเรียกเมธอด Show () ตอนนี้ลองมาดูที่ความมหัศจรรย์:

……. 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;

}

นั่นคือทั้งหมดที่มีให้

แนะนำ: