Come posizionare e ridimensionare un modulo (Windows Form .NET)
Quando viene creato un modulo, le dimensioni e la posizione sono inizialmente impostate su un valore predefinito. Le dimensioni predefinite di un modulo sono in genere una larghezza e un'altezza di 800x500 pixel. Il percorso iniziale, quando il modulo viene visualizzato, dipende da alcune impostazioni diverse.
È possibile modificare le dimensioni di un modulo in fase di progettazione con Visual Studio e in fase di esecuzione con il codice.
Ridimensionare con la finestra di progettazione
Dopo aver aggiunto un nuovo modulo al progetto, le dimensioni di un modulo vengono impostate in due modi diversi. In primo luogo, è possibile impostarlo con i grip delle dimensioni nella finestra di progettazione. Trascinando il bordo destro, il bordo inferiore o l'angolo, è possibile ridimensionare il form.
Il secondo modo in cui è possibile ridimensionare il modulo mentre la finestra di progettazione è aperta, è tramite il riquadro delle proprietà. Selezionare il modulo, quindi trovare il riquadro Proprietà in Visual Studio. Scorrere verso il basso fino alle dimensioni ed espanderlo. È possibile impostare manualmente Width e Height .
Ridimensionamento nel codice
Anche se la finestra di progettazione imposta le dimensioni iniziali di un modulo, è possibile ridimensionarla tramite il codice. L'uso del codice per ridimensionare un modulo è utile quando un elemento relativo all'applicazione determina che le dimensioni predefinite del modulo non sono sufficienti.
Per ridimensionare un modulo, modificare , Sizeche rappresenta la larghezza e l'altezza del form.
Ridimensionare il modulo corrente
È possibile modificare le dimensioni del modulo corrente purché il codice sia in esecuzione nel contesto del modulo. Ad esempio, se è presente un pulsante su di esso, quando si Form1
fa clic richiama il Click
gestore eventi per ridimensionare il modulo:
private void button1_Click(object sender, EventArgs e) =>
Size = new Size(250, 200);
Private Sub Button1_Click(sender As Object, e As EventArgs)
Size = New Drawing.Size(250, 200)
End Sub
Ridimensionare un modulo diverso
È possibile modificare le dimensioni di un altro modulo dopo la creazione usando la variabile che fa riferimento al modulo. Si supponga, ad esempio, di avere due forme, Form1
(il modulo di avvio in questo esempio) e Form2
. Form1
dispone di un pulsante che, quando si fa clic, richiama l'evento Click
. Il gestore di questo evento crea una nuova istanza del Form2
modulo, imposta le dimensioni e quindi la visualizza:
private void button1_Click(object sender, EventArgs e)
{
Form2 form = new Form2();
form.Size = new Size(250, 200);
form.Show();
}
Private Sub Button1_Click(sender As Object, e As EventArgs)
Dim form = New Form2 With {
.Size = New Drawing.Size(250, 200)
}
form.Show()
End Sub
Se l'oggetto Size
non è impostato manualmente, le dimensioni predefinite del modulo sono le impostazioni impostate su durante la fase di progettazione.
Posizione con la finestra di progettazione
Quando viene creata e visualizzata un'istanza del modulo, la posizione iniziale del modulo viene determinata dalla StartPosition proprietà . La Location proprietà contiene la posizione corrente del modulo. Entrambe le proprietà possono essere impostate tramite la finestra di progettazione.
Enumerazione FormStartPosition | Descrizione |
---|---|
CenterParent | Il form viene centrato all'interno dei limiti del relativo formato padre. |
CenterScreen | Il modulo è centrato sulla visualizzazione corrente. |
Manuale | La posizione del form è determinata dalla proprietà Location . |
WindowsDefaultBounds | Il modulo viene posizionato nel percorso predefinito di Windows e viene ridimensionato in base alle dimensioni predefinite determinate da Windows. |
WindowsDefaultLocation | Il modulo viene posizionato nel percorso predefinito di Windows e non viene ridimensionato. |
Il valore CenterParent funziona solo con i moduli che sono un form figlio MDI (Multiple Document Interface) o un modulo normale visualizzato con il ShowDialog metodo . CenterParent
non ha alcun effetto su un modulo normale visualizzato con il Show metodo . Per centrare un modulo ( variabile) in un altro modulo (form
parentForm
variabile), usare il codice seguente:
form.StartPosition = FormStartPosition.Manual;
form.Location = new Point(parentForm.Width / 2 - form.Width / 2 + parentForm.Location.X,
parentForm.Height / 2 - form.Height / 2 + parentForm.Location.Y);
form.Show();
form.StartPosition = Windows.Forms.FormStartPosition.CenterParent.Manual
form.Location = New Drawing.Point(parentForm.Width / 2 - form.Width / 2 + parentForm.Location.X,
parentForm.Height / 2 - form.Height / 2 + parentForm.Location.Y)
form.Show()
Posizione con codice
Anche se la finestra di progettazione può essere usata per impostare la posizione iniziale di un modulo, è possibile usare il codice per modificare la modalità di posizione iniziale o impostare manualmente la posizione. L'uso del codice per posizionare un modulo è utile se è necessario posizionare e ridimensionare manualmente un modulo in relazione allo schermo o ad altri moduli.
Spostare il modulo corrente
È possibile spostare il modulo corrente purché il codice sia in esecuzione all'interno del contesto del modulo. Ad esempio, se si dispone Form1
di un pulsante su di esso, che quando si fa clic richiama il Click
gestore eventi. Il gestore in questo esempio modifica la posizione del modulo in alto a sinistra dello schermo impostando la Location proprietà :
private void button1_Click(object sender, EventArgs e) =>
Location = new Point(0, 0);
Private Sub Button1_Click(sender As Object, e As EventArgs)
Location = New Drawing.Point(0, 0)
End Sub
Posizionare un modulo diverso
È possibile modificare la posizione di un altro modulo dopo la creazione usando la variabile che fa riferimento al modulo. Si supponga, ad esempio, di avere due forme, Form1
(il modulo di avvio in questo esempio) e Form2
. Form1
dispone di un pulsante che, quando si fa clic, richiama l'evento Click
. Il gestore di questo evento crea una nuova istanza del Form2
modulo e imposta il percorso:
private void button1_Click(object sender, EventArgs e)
{
Form2 form = new Form2();
form.Location = new Point(0, 0);
form.Show();
}
Private Sub Button1_Click(sender As Object, e As EventArgs)
Dim form = New Form2 With {
.Location = New Drawing.Point(0, 0)
}
form.Show()
End Sub
Location
Se l'oggetto non è impostato, la posizione predefinita del modulo è basata su ciò che la StartPosition
proprietà è stata impostata su in fase di progettazione.
Vedi anche
.NET Desktop feedback