Tắt Minimize & Maximize trên WinForm?


98

WinForms có ba hộp đó ở góc trên bên phải để thu nhỏ, tối đa hóa và đóng biểu mẫu. Những gì tôi muốn có thể làm là loại bỏ tối thiểu hóa và tối đa hóa, trong khi vẫn giữ nguyên.

Tôi cũng làm gì để làm cho việc đóng giảm thiểu biểu mẫu thay vì đóng nó.

Điều này có thể giải quyết như thế nào?

Câu trả lời:


161

Formhai thuộc tính được gọi MinimizeBoxMaximizeBox, đặt cả hai thành false.

Để dừng đóng biểu mẫu, hãy xử lý FormClosingsự kiện và đặt e.Cancel = true;ở đó và sau đó, đặt WindowState = FormWindowState.Minimized;, thu nhỏ biểu mẫu.


1
Bạn không thể chỉ đặt hộp điều khiển thành false.
krystan vinh dự

3
@krystanhonour Tuy nhiên, OP muốn giữ kết quả.
Hans Olsson,

16

Đặt MaximizeBoxMinimizeBoxtạo thuộc tính thànhFalse


15

Liên kết một trình xử lý với FormClosingsự kiện, sau đó thiết lập e.Cancel = truevà thiết lập biểu mẫu this.WindowState = FormWindowState.Minimized.

Nếu bạn muốn thực sự đóng biểu mẫu, hãy tạo boolean toàn lớp _closevà, trong trình xử lý của bạn, được đặt e.Cancelthành !_close, để bất cứ khi nào người dùng nhấp Xvào cửa sổ, nó sẽ không đóng, nhưng bạn vẫn có thể đóng nó (không có chỉ giết nó) vớiclose = true; this.Close();

(Và chỉ để làm cho câu trả lời của tôi hoàn chỉnh) đặt MaximizeBoxMinimizeBoxhình thành thuộc tính cho False.


5

Nhấp chuột phải vào biểu mẫu bạn muốn ẩn chúng, chọn Điều khiển -> Thuộc tính.

Trong Thuộc tính, đặt

  • Hộp điều khiển -> Sai
  • Hộp thu nhỏ -> Sai
  • Tối đa hóa hộp -> Sai

Bạn sẽ làm điều này trong trình thiết kế.


4

Cách làm cho biểu mẫu thu nhỏ khi đóng đã được giải đáp, nhưng cách loại bỏ các nút thu nhỏ và phóng to thì không.
FormBorderStyle: FixedDialog
MinimizeBox: false
MaximizeBox:false


3

bạn có thể chỉ cần vô hiệu hóa tối đa hóa hàm tạo bên trong biểu mẫu.

 public Form1(){
     InitializeComponent();
     MaximizeBox = false;
 }

để giảm thiểu khi đóng cửa.

private void Form1_FormClosing(Object sender, FormClosingEventArgs e) {
    e.Cancel = true;
    WindowState = FormWindowState.Minimized;
}

1
public Form1()
{
InitializeComponent();
//this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.MaximizeBox = false;
this.MinimizeBox = false;
}

2
Vui lòng thêm một số giải thích cho câu trả lời của bạn
mechnicov Ngày

Bạn tôi, nó rất dễ dàng, chỉ phải để đọc từng dòng mã
Mauricio Kenny

Về SO, đó là câu trả lời chất lượng thấp
mechnicov
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.