2009-07-13 6 views
44

J'ai un formulaire qui doit être maximisé dans VB.net. Je ne veux pas que l'utilisateur puisse changer sa taille ou le déplacer. Comment est-ce que je peux faire ceci?Comment empêcher qu'un formulaire ne soit redimensionné par l'utilisateur?

+1

@Powerlord Comment savez-vous que ce n'est pas une sorte de lecteur de film ou de jeu où vous * voulez * chaque pixel? –

+1

Microsoft fournit un exemple complet dans le cadre de sa documentation sur [Form.FormBorderStyle Property] (http://msdn.microsoft.com/fr-fr/library/system.windows.forms.form.formborderstyle%28v=vs.110). % 29.aspx). – DavidRR

Répondre

99

Définissez les propriétés en surbrillance. Définir les propriétés MaximimSize et MinimizeSize la même taille

enter image description here

+9

Vraiment une image vaut mille mots! – Martin

+1

Voir la fenêtre 2016 et 2017 s'il vous plaît. tous les vieux sont morts. – YumYumYum

+0

@YumYumYum la seule façon que j'ai trouvé pour ce faire était de le définir dans le code que je lançais le formulaire –

2

Pour empêcher les utilisateurs de redimensionner, définir le FormBoderStyle à Fixed3D ou FixedDialog des propriétés fenêtre ou à partir du code

frmYour.BorderStyle = System.WinForms.FormBorderStyle.Fixed3D 

et définissez la propriété WindowState à maximisée, définissez les propriétés MaximizeBox et MinimizeBox false.

Pour empêcher l'utilisateur de se déplacer, remplacer 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 quelle est la signification de tous ces entiers? –

+0

constantes pour passer à Windows api - chaque entier représente une commande Windows Message et le paramètre correspondant – amazedsaint

+0

Cela fonctionne mieux, il empêche l'utilisateur de faire glisser le formulaire à un autre moniteur aussi (un problème que j'ai, je ne sais pas si c'est win 8 ou multiple moniteurs provoquant cela). Mucky (pas de faute de répondeurs), mais la réponse est correcte. –

0

Vous pouvez supprimer l'interface utilisateur de contrôler cela avec:

frmYour.MinimizeBox = False 
frmYour.MaximizeBox = False 
2

Définir la fenêtre de style de démarrage maximisée. Ensuite, masquer les boutons minimiser et maximiser.

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

Définissez les tailles min et max du formulaire sur les mêmes nombres. Ne pas afficher les boutons min et max.

+0

Comme dit @LarsTech ci-dessus, vous pouvez toujours tirer et redimensionner le formulaire manuellement dans ce scénario, donc ce n'est pas la réponse complète, peut-être une partie de celui-ci, mais pas l'ensemble –

1

Ajouter un code à l'événement Form Load:

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

Exemple: Pour une hauteur de forme et la largeur de 50 pixels chacun:

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

Notez que le réglage maximumsize et minimumsize à t La même taille que celle montrée ici empêche le redimensionnement du formulaire.

-5

Il existe une option dans vb.net qui vous permet de faire tout cela.

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

L'utilisateur ne sera pas en mesure de redimensionner la forme ou le déplacer, bien qu'il existe d'autres moyens, ce que je pense est le meilleur.

+3

La propriété verrouillée est "design time" -seulement! –

-1

Modifiez simplement ces paramètres dans l'Explorateur de solutions.

MaximizeBox = False 
MinimizeBox = False 

Les autres éléments tels que ControlBox, Locked et FormBorderStyle sont en sus.

+2

'Les autres éléments tels que ControlBox, Locked et FormBorderStyle sont extra. Si FormBorderStyle n'est pas défini sur un style Fixed ou None, l'utilisateur peut redimensionner le formulaire. – LarsTech

Questions connexes