2011-08-12 49 views
10

Làm cách nào để xóa nút tối đa hóa khỏi biểu mẫu? Tôi đã vô hiệu hóa nó nhưng nó vẫn xuất hiện, nó không hoạt động. Tôi muốn một biểu mẫu chỉ với các nút đóng và thu nhỏ. Đó là một ứng dụng Windows Form và tôi đang sử dụng Visual Studio 2010.Visual Studio- Ẩn nút thu phóng tối đa trong một biểu mẫu

+0

Có phải WPF hoặc WinForms không? – Mrchief

+0

Đó là một ứng dụng biểu mẫu cửa sổ. – Walker

Trả lời

26

Ẩn nút tối đa là không thể nếu bạn không vẽ khung cửa sổ của riêng mình.

Tắt tính năng này cho người dùng biết rằng không thể tối đa hóa biểu mẫu UX tốt. Ẩn nó không giúp được gì bởi vì việc kích đúp vào thanh tiêu đề sẽ vẫn tối đa hóa cửa sổ (nếu bạn không vô hiệu hóa Tối đa hóa).

Bạn có thể đặt FormBorderStyle thiết lập để các FixedToolWindow hoặc SizableToolWindow, nhưng sau đó các hình thức sẽ không được hiển thị trên thanh tác vụ của Windows hoặc trong ALT + TAB cửa sổ. Xem cập nhật bên dưới.

Bạn có thể ẩn toàn bộ ControlBox cũng sẽ xóa MinimizeClose cũng như menu ngữ cảnh.

Chọn chất độc của bạn!


Cập nhật (12/24/15)

tôi quyết định xem xét lại các cảnh quan với các tùy chọn khác nhau và có vẻ như rằng:

  1. trái với những gì documentation nói, thiết lập FormBorderStyle để FixedToolWindow/SizableToolWindow không còn ẩn ứng dụng trong thanh tác vụ hoặc ALT + TAB cửa sổ trong Windows 7 trở lên. ShowInTaskbar độc quyền quyết định hiệu ứng Hiện/Ẩn trong trường hợp này (nhờ @pinowthebird để đưa tôi vào xem lại).
  2. Đặt FormBorderStyle thành FixedDialog cũng ẩn các nút tối đa/thu nhỏ và hiển thị trong thanh tác vụ, mặc dù biểu tượng mặc định hiện bị mất (không chắc chắn lý do).
  3. Đặt MaximizeBox = False KHÔNG ẩn các nút, lại trái với documentation. Nó chỉ đơn giản là vô hiệu hóa nó (và tối đa hóa chức năng thông qua thanh công cụ nhấp đúp chuột).
  4. Đặt cả haiMaximizeBox = FalseMinimizeBox = False ẩn chúng, không phân biệt FormBorderStyle.

Dưới đây là một số ảnh chụp màn hình:

<code>FormBorderStyle</code> = <code>FixedToolWindow/SizableToolWindow</code> <code>FormBorderStyle</code> = <code>FixedDialog</code> <code>MaximizeBox = False</code> **both** <code>MaximizeBox = False</code> and <code>MinimizeBox = False</code>

Kết luận:

Dựa trên yêu cầu của bạn, bạn có thể lựa chọn 1, 2 hoặc 3. Hy vọng điều này sẽ giúp khách truy cập trong tương lai.

Tuyên bố từ chối trách nhiệm: Các thử nghiệm này được thực hiện trong VS 2015, .Net 4.6 và ứng dụng WinForm hoàn toàn mới. Tài liệu nói rằng các thuộc tính này đã có sẵn từ .Net 1.1. Tuy nhiên, như bạn có thể thấy trong ảnh chụp màn hình - lấy tài liệu với một hạt muối! Ngoài ra hệ điều hành đóng một vai trò quan trọng trong kết quả.

+0

Thuộc tính 'FormBorderStyle' không xác định xem biểu mẫu có được hiển thị trong thanh tác vụ Windows hay không. Thuộc tính để thay đổi được gọi là 'ShowInTaskbar'. – pinowthebird

+0

@pinowthebird: Nhận xét của bạn khiến tôi suy nghĩ lại. Tôi đã cập nhật câu trả lời của mình. – Mrchief

0

Nếu bạn đặt ControlBox thành False, bạn sẽ mất các nút Thu nhỏ, Phóng to và Đóng ở góc trên bên phải. ControlBox là đối tượng chứa menu ngữ cảnh ở phía trên bên trái của biểu mẫu của bạn.

Nếu bạn đặt ControlBox thành True, bạn phải đặt cả hai Phóng to và thu nhỏ thành False - điều này ẩn cả hai nút. Nếu không có khả năng p/gọi Win32, tôi không tin điều khiển của bạn sẽ trở nên chi tiết hơn thế.

+1

Có cách nào để làm điều đó mà không làm mất nút thu nhỏ không? – Walker

+0

Không. Bên ngoài cửa sổ công cụ, Win32 không cung cấp một cách vượt trội để có cửa sổ với nút thu nhỏ mà không có nút phóng to. Họ đến và đi như một cặp. –

4

Bạn có thể thay đổi thuộc tính của FormBorderStyle thành FixedToolWindows hoặc SizableToolWindow.

-1

Chúng tôi có thể tắt hai biểu tượng, giảm thiểutối đa hóa. Bạn sẽ phải đặt "minimize và maximize biểu tượng như sai cả. Nếu một trong hai biểu tượng vẫn còn đúng, sau đó cả ba biểu tượng sẽ được hiển thị trên cửa sổ hình thức của bạn.

+0

-1. Từ câu hỏi của OP: 'Tôi muốn một biểu mẫu chỉ với các nút đóng và thu nhỏ'. Giải pháp của bạn là 'Không, bạn không thể có điều đó'. Điều này không đúng theo các câu trả lời khác được liệt kê ở đây. – Neolisk

6

nó rất đơn giản :) làm điều này

Private Sub Form1_Load (người gửi Như Object, e Như EventArgs) Handles MyBase.Load

MaximizeBox = False 

End Sub 

Bây giờ, khách hàng của bạn không thể phát huy tối đa hình thức của bạn, ngay cả khi anh/cô ấy gấp đôi nhấp chuột vào thanh tiêu đề của mẫu của bạn.

0
Private Sub Form4_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize 


If Me.WindowState = FormWindowState.Minimized Then 

Me.WindowState = FormWindowState.Normal 

End If 

End Sub 
+1

Vui lòng thêm mô tả vào câu trả lời của bạn. – Sufian

1

Chỉ cần đặt thuộc tính "MaximiseBox" thành sai trong cửa sổ thuộc tính của biểu mẫu. Cũng vậy với hộp giảm thiểu.

0

Trong Visual Studio, trước tiên hãy chọn biểu mẫu, đi đến thuộc tính và bấm vào hộp tối đa hóa, đặt nó thành False.It sẽ ẩn nút thu phóng tối đa.

Các vấn đề liên quan