2009-07-13 88 views
44

我有一個需要在VB.net中最大化的窗體。我不希望用戶能夠改變其大小或移動它。 我該怎麼做?如何防止表單被用戶調整大小?

+1

@Powerlord你怎麼知道它不是某種電影播放器​​或遊戲,你希望*每一個最後像素? – 2013-07-18 15:23:01

+1

Microsoft爲[Form.FormBorderStyle屬性](http://msdn.microsoft.com/en-us/library/system.windows.forms.form.formborderstyle%28v=vs.110)提供了一個全面的示例文檔%29.aspx)。 – DavidRR 2014-07-10 18:39:36

回答

99

設置突出顯示的屬性。設置MaximimSize和MinimizeSize性質相同的尺寸

enter image description here

2

爲了防止用戶調整大小,從屬性窗口或代碼

frmYour.BorderStyle = System.WinForms.FormBorderStyle.Fixed3D 

設置FormBoderStyle到Fixed3D或FixedDialog而WindowState屬性設置爲最大化,設置MaximizeBox和MinimizeBox屬性設置爲false。

爲了防止用戶走動,覆蓋的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

哇所有那些整數的意義是什麼? – 2009-07-13 13:09:23

+0

傳遞給Windows API的常量 - 每個整數代表一個Windows消息命令和相應的參數 – amazedsaint 2009-07-13 13:27:31

+0

這最好,它可以防止用戶將窗體拖動到另一臺顯示器(我有一個問題,不知道它是贏8或多個監視器造成這一點)。 Mucky(而不是回答者的錯誤),但答案是正確的。 – 2012-10-11 10:54:33

0

您可以刪除用戶界面與控制此:

frmYour.MinimizeBox = False 
frmYour.MaximizeBox = False 
2

設置窗口開始風格最大化。然後,隱藏最小化和最大化按鈕。

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

將表單的最小和最大尺寸設置爲相同的數字。不要顯示最小和最大按鈕。

+0

正如@LarsTech上面所說的,你仍然可以在這個場景中手動拉取和調整表單的大小,所以這不是完整的答案,也許是其中的一部分,但並不妨礙整個問題 – 2017-04-27 11:41:13

1

一些代碼添加到窗體的Load事件:

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

示例:對於50個像素的每一個表格的高度和寬度:

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

請注意,將maximumsizeminimumsize設置爲t如此處所示的相同大小可防止調整窗體大小。

-5

在vb.net中有一個選項可以讓你做到這一切。

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

用戶將無法重新大小的形式或移動它,雖然也有其他方法,這個我認爲是最好的。

-1

只需在解決方案資源管理器中更改這些設置即可。

MaximizeBox = False 
MinimizeBox = False 

其他的東西,如ControlBox,Locked和FormBorderStyle是額外的。

相關問題