[英]How do I prevent a C# console application from taking priority as the active window?
[英]How do I prevent a user from resizing a window in my C# application?
如何防止調整應用程序窗口的大小?
我該怎么做?
在主Form
(或任何您不想調整大小的Form
)上,將FormBorderStyle
屬性更改為Fixed______
( FixedSingle
、 Fixed3D
、 FixedDialog
、 FixedToolWindow
)。
另一種方法是定義表單大小並通過屬性將實際大小設置為MinimumSize
和MaximumSize
。
這不會更改您的 BorderStyle,並且最終用戶無法修改表單的大小。
試試這個:
將FormBorderStyle
更改為Fixed(Single, 3D, Dialog)
。
有一些解決方法:
將最大尺寸屬性設置為您喜歡的值。 如果您不希望應用程序窗口也縮小,則設置最小尺寸屬性。 如果您希望應用程序的大小與設計時的大小完全相同,則將最大大小和最小大小都設置為窗口大小。 (一旦您從設計器中設置了最大尺寸或最小尺寸,您就無法以編程方式調整窗口大小,除非您再次以編程方式重新設置最大尺寸和最小尺寸)
將 FormBorderStyle 設置為 FixedSingle 或 FixedDialog。 對於未受過訓練的眼睛,外觀上的差異不會很明顯,但我從我的經驗中發現的一個顯着差異是,當您將其設為 FixedSingle 時,您仍然可以通過編程方式更改大小。 使用 FixedDialog 是不可能的。 這對於 FixedSingle 屬性來說是一個巨大的優勢。 (如果您想在使用 FixedDialog 之后以編程方式在此處更改窗口大小,那么您必須首先以編程方式更改 FormBorderStyle,這會在運行應用程序時產生輕微的閃爍效果)。
所以只需選擇FixedSingle。 為了有意義,請執行以下操作:
a. 將最大化框屬性設置為 false。
灣將 SizeGripStyle 設置為隱藏。 (@colithium 指出這一點)
如果要使用默認的FormBorderStyle
,並且仍然能夠阻止用戶重新調整表單大小,則可以根據需要簡單地設置表單的MaximumSize
和MinimumSize
屬性。
this.MaximumSize = new Size(XX,YY);
this.MinimumSize = new Size(X,Y);
您可以在 xaml 中或通過設計器將 Window 對象的 ResizeMode 屬性更改為CanMinimize
或NoResize
。
在較舊版本的 Visual Studio 中查找這些屬性存在問題,例如 Visual Studio 2008 並且 ResizeMode 不會出現在此處。
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (e.CloseReason == CloseReason.UserClosing)
{
e.Cancel = true;
this.WindowState = FormWindowState.Minimized;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.