2009-07-13 29 views
44

Tôi có một biểu mẫu cần được tối đa hóa trong VB.net. Tôi không muốn người dùng có thể thay đổi kích thước của nó hoặc di chuyển nó xung quanh. Tôi có thể làm như thế nào?Làm cách nào để ngăn người dùng thay đổi kích thước biểu mẫu?

+1

@Powerlord Làm thế nào để bạn biết rằng đó không phải là một số loại trình phát phim hoặc trò chơi mà bạn muốn * mỗi điểm ảnh cuối cùng? –

+1

Microsoft cung cấp một ví dụ toàn diện như là một phần của tài liệu của nó cho [Form.FormBorderStyle Property] (http://msdn.microsoft.com/en-us/library/system.windows.forms.form.formborderstyle%28v=vs.110 % 29.aspx). – DavidRR

Trả lời

99

Đặt thuộc tính được đánh dấu. Đặt MaximimSize và MinimizeSize tính cùng kích thước

enter image description here

+9

Thực sự một bức tranh đáng giá cả nghìn lời! – Martin

+1

Hiển thị cửa sổ 2016 và 2017. mọi người già đều chết. – YumYumYum

+0

@YumYumYum cách duy nhất tôi tìm thấy để làm điều này là để xác định nó trong mã như tôi đã được tung ra các hình thức –

2

Để ngăn chặn người dùng thay đổi kích thước, thiết lập FormBoderStyle để Fixed3D hoặc FixedDialog từ cửa sổ thuộc tính hoặc từ mã

frmYour.BorderStyle = System.WinForms.FormBorderStyle.Fixed3D 

Và thiết lập thuộc tính windowState để dạng phóng to, thiết lập các thuộc tính MaximizeBox và MinimizeBox false.

Để ngăn chặn người dùng di chuyển xung quanh, ghi đè WndProc

Protected Overrides Sub WndProc(ByRef m As Message) 
     Const WM_NCLBUTTONDOWN As Integer = 161 
     Const WM_SYSCOMMAND As Integer = 274 
     Const HTCAPTION As Integer = 2 
     Const SC_MOVE As Integer = 61456 

     If (m.Msg = WM_SYSCOMMAND) And (m.WParam.ToInt32() = SC_MOVE) Then 
      Return 
     End If 

     If (m.Msg = WM_NCLBUTTONDOWN) And (m.WParam.ToInt32() = HTCAPTION) Then 
      Return 
     End If 

     MyBase.WndProc(m) 
    End Sub 
+0

wow ý nghĩa của tất cả các số nguyên đó là gì? –

+0

hằng số để chuyển đến cửa sổ api - mỗi số nguyên đại diện cho lệnh Windows Message và thông số tương ứng – amazedsaint

+0

Điều này hoạt động tốt nhất, nó ngăn người dùng kéo biểu mẫu đến một màn hình khác (vấn đề tôi gặp phải, không chắc chắn là nó có giành được 8 hay nhiều không màn hình gây ra điều này). Mucky (không phải lỗi của người trả lời), nhưng câu trả lời là đúng. –

0

Bạn có thể loại bỏ các giao diện người dùng để kiểm soát này với:

frmYour.MinimizeBox = False 
frmYour.MaximizeBox = False 
2

Đặt cửa sổ phong cách bắt đầu như tối đa. Sau đó, ẩn các nút thu nhỏ và tối đa hóa.

4
//Set fixed border 
yourForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D 

//Set the state of your form to maximized  
yourForm.WindowState = FormWindowState.Maximized 

//Disable the minimize box and the maximize box 
yourForm.MinimizeBox = False 
yourForm.MaximizeBox = False 
-1

Đặt kích thước tối thiểu và tối đa thành cùng số. Không hiển thị các nút tối thiểu và tối đa.

+0

Như @LarsTech đã nói ở trên, bạn vẫn có thể kéo và thay đổi kích thước biểu mẫu theo cách thủ công trong trường hợp này vì vậy đây không phải là câu trả lời đầy đủ, có thể là một phần của nó, nhưng sẽ không ngăn vấn đề như toàn bộ –

1

Thêm một số mã vào sự kiện Form Load:

me.maximumsize = new size(Width, Height) 
me.minimumsize = me.maximumsize 
me.maximizebox = false 
me.minimizebox = false 

Ví dụ: Đối với một chiều cao Form và chiều rộng của 50 pixel mỗi:

me.maximumsize = new size(50, 50) 
me.minimumsize = me.maximumsize 
me.maximizebox = false 
me.minimizebox = false 

Lưu ý rằng thiết lập maximumsizeminimumsize để t anh ta có cùng kích thước như được hiển thị ở đây, không thể thay đổi kích thước Biểu mẫu.

-5

Có một tùy chọn trong vb.net cho phép bạn thực hiện tất cả điều này.

Set <code>lock = false</code> to <code>locked = true</code>

Người dùng sẽ không thể thay đổi kích thước hình thức hoặc di chuyển nó xung quanh, mặc dù có những cách khác, điều này tôi nghĩ là tốt nhất.

+3

Tài sản bị khóa là "thiết kế thời gian" -only! –

-1

Chỉ cần thay đổi các cài đặt này trong Solution Explorer.

MaximizeBox = False 
MinimizeBox = False 

Những thứ khác như ControlBox, Locked và FormBorderStyle là phụ.

+2

'Các thứ khác như ControlBox, Locked, và FormBorderStyle là phụ.' Nếu FormBorderStyle không được đặt thành kiểu Fixed hoặc None, người dùng có thể thay đổi kích thước biểu mẫu. – LarsTech

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