2010-06-11 18 views
76

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

Tôi cũng phải làm gì để giảm thiểu tối đa biểu mẫu thay vì đóng biểu mẫu.

Làm cách nào để thực hiện điều này?

Trả lời

122

Các Form có hai thuộc tính gọi là MinimizeBoxMaximizeBox, đặt cả trong số họ để false.

Để ngừng đóng biểu mẫu, hãy xử lý sự kiện FormClosing và đặt e.Cancel = true; trong đó và sau đó, đặt WindowState = FormWindowState.Minimized;, để giảm thiểu biểu mẫu.

+0

thể bạn không chỉ cần đặt hộp điều khiển để sai. –

+1

@krystanhonour OP muốn giữ kết thúc. –

+0

ahh đủ công bằng :) –

10

Đặt MaximizeBoxMinimizeBox dạng tính để False

14

Liên kết người xử lý với sự kiện FormClosing, sau đó đặt e.Cancel = true và đặt biểu mẫu this.WindowState = FormWindowState.Minimized.

Nếu bạn muốn bao giờ thực sự đóng biểu mẫu, làm cho một boolean đẳng cấp rộng _close và trong xử lý của bạn, thiết lập e.Cancel để !_close, do đó bất cứ khi nào người dùng nhấp vào X trên cửa sổ, nó không đóng, nhưng bạn vẫn có thể đóng nó (mà không cần phải giết nó) với close = true; this.Close();

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

1

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

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

để thu nhỏ khi đóng.

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

Bấm 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 Properties, thiết lập

  • Hộp điều khiển -> False
  • Minimize Box -> False
  • Tối đa hóa Box -> False

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

1

Cách giảm thiểu biểu mẫu khi đóng đã được trả lời, nhưng cách xóa các nút thu nhỏ và tối đa hóa không phải là.
FormBorderStyle: FixedDialog
MinimizeBox: false
MaximizeBox: false