WinForms มีสามช่องที่มุมขวาบนซึ่งย่อขยายใหญ่สุดและปิดแบบฟอร์ม สิ่งที่ฉันต้องการทำได้คือการลบขนาดเล็กสุดและขยายใหญ่สุดในขณะที่ปิดไว้
ฉันยังต้องทำอย่างไรเพื่อให้การปิดย่อขนาดเล็กที่สุดแทนการปิดแบบฟอร์ม
จะทำได้อย่างไร?
WinForms มีสามช่องที่มุมขวาบนซึ่งย่อขยายใหญ่สุดและปิดแบบฟอร์ม สิ่งที่ฉันต้องการทำได้คือการลบขนาดเล็กสุดและขยายใหญ่สุดในขณะที่ปิดไว้
ฉันยังต้องทำอย่างไรเพื่อให้การปิดย่อขนาดเล็กที่สุดแทนการปิดแบบฟอร์ม
จะทำได้อย่างไร?
คำตอบ:
Formมีสองคุณสมบัติที่เรียกว่าMinimizeBoxและตั้งทั้งสองของพวกเขาไปMaximizeBoxfalse
หากต้องการหยุดการปิดแบบฟอร์มให้จัดการFormClosingเหตุการณ์และตั้งค่าe.Cancel = true;ในนั้นและหลังจากนั้นตั้งค่าWindowState = FormWindowState.Minimized;เพื่อย่อขนาดฟอร์ม
ตั้งค่าMaximizeBoxและMinimizeBoxสร้างคุณสมบัติเป็นFalse
ผูกตัวจัดการกับFormClosingเหตุการณ์แล้วตั้งและการตั้งค่ารูปแบบe.Cancel = truethis.WindowState = FormWindowState.Minimized
หากคุณต้องการปิดแบบฟอร์มจริง ๆ ให้สร้างบูลีนสำหรับทั้งคลาส_closeและในตัวจัดการของคุณตั้งค่าe.Cancelเป็น!_closeดังนั้นเมื่อใดก็ตามที่ผู้ใช้คลิกXที่หน้าต่างนั้นจะไม่ปิด แต่คุณยังสามารถปิดได้ (โดยไม่ต้อง แค่ฆ่ามัน) ด้วยclose = true; this.Close();
(และเพียงเพื่อให้คำตอบที่สมบูรณ์ของฉัน) ชุดMaximizeBoxและแบบฟอร์มคุณสมบัติMinimizeBoxFalse
คลิกขวาที่ฟอร์มที่คุณต้องการซ่อนเลือกตัวควบคุม -> คุณสมบัติ
ในคุณสมบัติให้ตั้งค่า
คุณจะทำสิ่งนี้ในตัวออกแบบ
วิธีการย่อรูปแบบเมื่อปิดมีคำตอบแล้ว แต่วิธีการลบปุ่มย่อและขยายไม่ได้
FormBorderStyle: FixedDialog
MinimizeBox: false
MaximizeBox:false
คุณสามารถปิดใช้งานการขยายขนาดใหญ่สุดภายในตัวสร้างแบบฟอร์ม
public Form1(){
InitializeComponent();
MaximizeBox = false;
}
เพื่อลดเมื่อปิด
private void Form1_FormClosing(Object sender, FormClosingEventArgs e) {
e.Cancel = true;
WindowState = FormWindowState.Minimized;
}
public Form1()
{
InitializeComponent();
//this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.MaximizeBox = false;
this.MinimizeBox = false;
}