2010-09-20 33 views
27

Cách ngăn thay đổi kích thước cửa sổ ứng dụng của tôi.C# cách ngăn người dùng thay đổi kích thước cửa sổ ứng dụng của tôi?

Tôi làm cách nào để thực hiện điều đó?

+0

bản sao có thể có của [Làm cách nào để ngăn người dùng thay đổi kích thước biểu mẫu?] (Http://stackoverflow.com/questions/1119256/how-do-i-prevent-a-form-từ -being-by-the-user) –

+0

có thể trùng lặp của [Làm cách nào để ngăn người dùng thay đổi kích thước cửa sổ/biểu mẫu khi ứng dụng đang chạy] (http: // stackoverflow.com/questions/1330339/how-can-i-prevent-users-from-change-the-window-form-size-khi-ứng dụng-là-r) – bluish

Trả lời

40

Trên chính Form (hoặc bất kỳ Form mà bạn không muốn trở thành thay đổi kích thước), thay đổi FormBorderStyle tài sản để Fixed______ (FixedSingle, Fixed3D, FixedDialog, FixedToolWindow).

+0

Cảm ơn. Điều này làm việc và ngon miệng hơn là thiết lập giá trị tối đa cho giá trị min và các hacks khác. – Phil

+1

FixedToolWindow đặc biệt là "bảng màu có thể". –

5

cách khác là xác định kích thước biểu mẫu của bạn và đặt kích thước thực là MinimumSizeMaximumSize thông qua thuộc tính.

Điều này không thay đổi BorderStyle của bạn và người dùng cuối không thể sửa đổi kích thước của biểu mẫu.

+4

Giải pháp hợp lệ. Nhưng tôi không thích khi Windows trông có thể thay đổi kích thước và tôi đi để thay đổi kích thước chúng và không có gì xảy ra. – colithium

1

thử điều này:

Change FormBorderStyle to Fixed(Single,3D,Dialog) 
+1

Nó vẫn có thể được thay đổi kích cỡ bằng cách kéo các cạnh. – colithium

3

Có một vài cách giải quyết cho việc này:

  1. Thiết lập thuộc tính kích thước tối đa đến một giá trị mà bạn thích. Nếu bạn không muốn cửa sổ ứng dụng bị thu hẹp, hãy đặt thuộc tính kích thước tối thiểu. Nếu bạn thích ứng dụng có cùng kích thước giống với thời gian thiết kế, thì hãy đặt cả kích thước tối đa và kích thước tối thiểu bằng kích thước cửa sổ của bạn. (Sau khi bạn đặt kích thước tối đa hoặc kích thước tối thiểu từ nhà thiết kế, bạn không thể định lại kích thước cửa sổ của mình theo chương trình, trừ khi bạn đặt lại kích thước tối đa và kích thước tối thiểu theo lập trình một lần nữa)

  2. Đặt FormBorderStyle to FixedSingle hoặc FixedDialog. Sự khác biệt về ngoại hình sẽ không đáng chú ý với đôi mắt chưa được đào tạo, nhưng một sự khác biệt đáng kể tôi tìm thấy từ kinh nghiệm của tôi là, khi bạn làm cho nó FixedSingle, bạn vẫn có thể thay đổi kích thước lập trình. Với FixedDialog nó không thể. Đó là một lợi thế rất lớn cho thuộc tính FixedSingle. (Nếu bạn muốn thay đổi kích thước cửa sổ của mình theo chương trình tại đây sau khi đi FixedDialog, thì bạn phải thay đổi FormBorderStyle theo chương trình trước, điều này sẽ tạo hiệu ứng nhấp nháy nhẹ khi chạy ứng dụng).

Vì vậy, chỉ cần đi tới FixedSingle. Và để làm cho tinh thần, hãy làm như sau:

a. Đặt tối đa hóa thuộc tính hộp thành false.

b. Đặt SizeGripStyle thành Ẩn. (@colithium điểm này)

-2

Có sự cố khi tìm thuộc tính này trong phiên bản thấp hơn của Visual Studio, như 2008 và ResizeMode không xuất hiện ở đây.

private void Form1_FormClosing(object sender, FormClosingEventArgs e) 
{ 
    if (e.CloseReason == CloseReason.UserClosing) 
    { 
    e.Cancel = true; 
    this.WindowState = FormWindowState.Minimized; 
    } 
} 
+3

Mã này giúp ích như thế nào? – aKzenT

0

Nếu bạn muốn sử dụng mặc định FormBorderStyle, và vẫn có thể ngăn chặn người dùng từ tái định cỡ mẫu, bạn chỉ có thể thiết lập các MaximumSizeMinimumSize tính chất của các hình thức như bạn muốn.

this.MaximumSize = new Size(XX,YY); 
this.MinimumSize = new Size(X,Y); 
Các vấn đề liên quan