2009-07-13 19 views
44

Ho un modulo che deve essere massimizzato in VB.net. Non voglio che l'utente possa modificarne le dimensioni o spostarlo. Come posso fare questo?Come impedire che un modulo venga ridimensionato dall'utente?

+1

@Powerlord Come fai a sapere che non si tratta di una sorta di giocatore di cinema o gioco in cui si desidera * ogni pixel? –

+1

Microsoft fornisce un esempio completo come parte della documentazione per [Proprietà Form.FormBorderStyle] (http://msdn.microsoft.com/en-us/library/system.windows.forms.form.formborderstyle%28v=vs.110 % 29.aspx). – DavidRR

risposta

99

Impostare le proprietà evidenziate. Set MaximimSize e MinimizeSize proprietà della stessa dimensione

enter image description here

+9

Davvero un'immagine vale più di mille parole! – Martin

+1

Mostra finestra 2016 e 2017 per favore. tutti i vecchi sono morti – YumYumYum

+0

@YumYumYum l'unico modo che ho trovato per farlo era definirlo nel codice mentre stavo lanciando il modulo –

2

per impedire agli utenti di ridimensionare, impostare il FormBoderStyle a Fixed3D o FixedDialog dalla finestra delle proprietà o dal codice

frmYour.BorderStyle = System.WinForms.FormBorderStyle.Fixed3D 

e impostare la proprietà WindowState a Ingrandita, impostare le proprietà MaximizeBox e MinimizeBox false.

per impedire all'utente di muoversi, ignorare 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 qual è il significato di tutti questi numeri interi? –

+0

costanti per il passaggio a Windows API - ogni numero intero rappresenta un comando di messaggio di Windows e il parametro corrispondente – amazedsaint

+0

Questo funziona meglio, impedisce all'utente di trascinare il modulo su un altro monitor (un problema che ho, non sono sicuro se è win 8 o multiplo monitor che causano questo). Mucky (non colpa dei rispondenti), ma la risposta è corretta. –

0

È possibile rimuovere l'interfaccia utente per controllare questo con:

frmYour.MinimizeBox = False 
frmYour.MaximizeBox = False 
2

Impostare lo stile di inizio finestra massimizzata. Quindi, nascondi i pulsanti minimizza e massimizza.

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

Impostare le dimensioni min e max del modulo sugli stessi numeri. Non mostrare i pulsanti min e max.

+0

Come detto in precedenza da @LarsTech, in questo scenario è ancora possibile tirare e ridimensionare il modulo in modo che questa non sia la risposta completa, forse parte di essa ma non impedirebbe il problema nel suo insieme –

1

Aggiungere codice all'evento Form Load:

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

Esempio: Per un'altezza Forma e larghezza di 50 pixel ciascuno:

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

Si noti che l'impostazione maximumsize e minimumsize to t le stesse dimensioni mostrate qui impediscono il ridimensionamento del modulo.

-5

C'è un'opzione in vb.net che ti permette di fare tutto questo.

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

L'utente non sarà in grado di ridimensionare la forma o spostarlo, anche se ci sono altri modi, questo credo sia il migliore.

+3

La proprietà bloccata è "tempo di progettazione" -solo! –

-1

Basta modificare queste impostazioni in Solution Explorer.

MaximizeBox = False 
MinimizeBox = False 

Le altre cose come ControlBox, Locked e FormBorderStyle sono extra.

+2

'Le altre cose come ControlBox, Locked e FormBorderStyle sono extra. Se FormBorderStyle non è impostato su uno stile di tipo Fisso o Nessuno, l'utente può ridimensionare il modulo. – LarsTech

Problemi correlati