โฮมเพจ » ทำอย่างไร » ผ่านตัวแปรระหว่าง Windows Forms Windows โดยไม่มี ShowDialog ()

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

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

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

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

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

    MainForm

    OptionsForm

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

    …. บุคคลที่ไม่สำคัญ ... .

    OptionsForm theform = new OptionsForm ();
    theform.Closing + = new CancelEventHandler (theform_Closing);
    theform.Show ();

    โมฆะส่วนตัว theform_Closing (ผู้ส่งวัตถุ, CancelEventArgs e)

    OptionsForm theform = ผู้ส่ง (OptionsForm)

    // หยิบตัวแปรจากฟอร์มตัวเลือก แบบฟอร์มตัวเลือกควรตั้งค่าตัวแปรนี้ก่อนที่จะปิดและตัวแปรควรถูกทำเครื่องหมายเป็นสาธารณะ.
    string localvar = theform.thestringvariable;

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