WinForms มีสามช่องที่มุมขวาบนซึ่งย่อขยายใหญ่สุดและปิดแบบฟอร์ม สิ่งที่ฉันต้องการทำได้คือการลบขนาดเล็กสุดและขยายใหญ่สุดในขณะที่ปิดไว้
ฉันยังต้องทำอย่างไรเพื่อให้การปิดย่อขนาดเล็กที่สุดแทนการปิดแบบฟอร์ม
จะทำได้อย่างไร?
WinForms มีสามช่องที่มุมขวาบนซึ่งย่อขยายใหญ่สุดและปิดแบบฟอร์ม สิ่งที่ฉันต้องการทำได้คือการลบขนาดเล็กสุดและขยายใหญ่สุดในขณะที่ปิดไว้
ฉันยังต้องทำอย่างไรเพื่อให้การปิดย่อขนาดเล็กที่สุดแทนการปิดแบบฟอร์ม
จะทำได้อย่างไร?
คำตอบ:
Form
มีสองคุณสมบัติที่เรียกว่าMinimizeBox
และตั้งทั้งสองของพวกเขาไปMaximizeBox
false
หากต้องการหยุดการปิดแบบฟอร์มให้จัดการFormClosing
เหตุการณ์และตั้งค่าe.Cancel = true;
ในนั้นและหลังจากนั้นตั้งค่าWindowState = FormWindowState.Minimized;
เพื่อย่อขนาดฟอร์ม
ตั้งค่าMaximizeBox
และMinimizeBox
สร้างคุณสมบัติเป็นFalse
ผูกตัวจัดการกับFormClosing
เหตุการณ์แล้วตั้งและการตั้งค่ารูปแบบe.Cancel = true
this.WindowState = FormWindowState.Minimized
หากคุณต้องการปิดแบบฟอร์มจริง ๆ ให้สร้างบูลีนสำหรับทั้งคลาส_close
และในตัวจัดการของคุณตั้งค่าe.Cancel
เป็น!_close
ดังนั้นเมื่อใดก็ตามที่ผู้ใช้คลิกX
ที่หน้าต่างนั้นจะไม่ปิด แต่คุณยังสามารถปิดได้ (โดยไม่ต้อง แค่ฆ่ามัน) ด้วยclose = true; this.Close();
(และเพียงเพื่อให้คำตอบที่สมบูรณ์ของฉัน) ชุดMaximizeBox
และแบบฟอร์มคุณสมบัติMinimizeBox
False
คลิกขวาที่ฟอร์มที่คุณต้องการซ่อนเลือกตัวควบคุม -> คุณสมบัติ
ในคุณสมบัติให้ตั้งค่า
คุณจะทำสิ่งนี้ในตัวออกแบบ
วิธีการย่อรูปแบบเมื่อปิดมีคำตอบแล้ว แต่วิธีการลบปุ่มย่อและขยายไม่ได้
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;
}