簡體   English   中英

如何防止用戶在我的 C# 應用程序中調整窗口大小?

[英]How do I prevent a user from resizing a window in my C# application?

如何防止調整應用程序窗口的大小?

我該怎么做?

在主Form (或任何您不想調整大小的Form )上,將FormBorderStyle屬性更改為Fixed______FixedSingleFixed3DFixedDialogFixedToolWindow )。

另一種方法是定義表單大小並通過屬性將實際大小設置為MinimumSizeMaximumSize

這不會更改您的 BorderStyle,並且最終用戶無法修改表單的大小。

試試這個:

FormBorderStyle更改為Fixed(Single, 3D, Dialog)

有一些解決方法:

  1. 將最大尺寸屬性設置為您喜歡的值。 如果您不希望應用程序窗口也縮小,則設置最小尺寸屬性。 如果您希望應用程序的大小與設計時的大小完全相同,則將最大大小和最小大小都設置為窗口大小。 (一旦您從設計器中設置了最大尺寸或最小尺寸,您就無法以編程方式調整窗口大小,除非您再次以編程方式重新設置最大尺寸和最小尺寸)

  2. 將 FormBorderStyle 設置為 FixedSingle 或 FixedDialog。 對於未受過訓練的眼睛,外觀上的差異不會很明顯,但我從我的經驗中發現的一個顯着差異是,當您將其設為 FixedSingle 時,您仍然可以通過編程方式更改大小。 使用 FixedDialog 是不可能的。 這對於 FixedSingle 屬性來說是一個巨大的優勢。 (如果您想在使用 FixedDialog 之后以編程方式在此處更改窗口大小,那么您必須首先以編程方式更改 FormBorderStyle,這會在運行應用程序時產生輕微的閃爍效果)。

所以只需選擇FixedSingle。 為了有意義,請執行以下操作:

a. 將最大化框屬性設置為 false。

將 SizeGripStyle 設置為隱藏。 (@colithium 指出這一點)

如果要使用默認的FormBorderStyle ,並且仍然能夠阻止用戶重新調整表單大小,則可以根據需要簡單地設置表單的MaximumSizeMinimumSize屬性。

this.MaximumSize = new Size(XX,YY);
this.MinimumSize = new Size(X,Y);

您可以在 xaml 中或通過設計器將 Window 對象的 ResizeMode 屬性更改為CanMinimizeNoResize

在較舊版本的 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM