Procedura dettagliata: disposizione dei controlli in Windows Form utilizzando TableLayoutPanel
Alcune applicazioni richiedono che il form abbia un layout che possa adattarsi automaticamente alle eventuali modifiche alle dimensioni del form o del contenuto del form. Per usare un layout dinamico senza gestire gli eventi Layout in modo esplicito nel codice è possibile usare un pannello di layout.
I controlli FlowLayoutPanel e TableLayoutPanel offrono modalità intuitive per disporre i controlli nel form. Entrambi i controlli forniscono una funzionalità configurabile e automatica per la verifica delle posizioni relative dei controlli figlio contenuti e funzionalità di layout dinamico in fase di esecuzione in modo che i controlli figlio possano essere ridimensionati e riposizionati quando le dimensioni del form padre cambiano. I pannelli layout possono essere annidati in altri pannelli layout per consentire la realizzazione di interfacce utente sofisticate.
FlowLayoutPanel dispone i contenuti in una direzione di flusso specifica: orizzontale o verticale. Il contenuto può andare a capo da una riga a quella successiva o da una colonna a quella successiva. In alternativa, è possibile troncare il contenuto invece di usare il ritorno a capo. Per altre informazioni, vedere Procedura dettagliata: Disposizione dei controlli su Windows Form uso di flowLayoutPanel.
Dispone TableLayoutPanel il relativo contenuto in una griglia, fornendo funzionalità simili all'elemento tabella< HTML>. Il TableLayoutPanel controllo consente di posizionare i controlli in un layout griglia senza che sia necessario specificare con precisione la posizione di ogni singolo controllo. Le celle vengono disposte in righe e colonne, e queste possono avere dimensioni diverse. Le celle possono essere unite tra righe e colonne. Le celle possono contenere qualsiasi elemento che un modulo può contenere e comportarsi nella maggior parte degli altri aspetti come contenitori.
Il TableLayoutPanel controllo fornisce anche una funzionalità di ridimensionamento proporzionale in fase di esecuzione, in modo che il layout possa cambiare senza problemi man mano che il modulo viene ridimensionato. In questo modo il TableLayoutPanel controllo è particolarmente adatto per scopi quali moduli di immissione dati e applicazioni localizzate. Per altre informazioni, vedere Procedura dettagliata: Creazione di un Windows Form ridimensionabile per immissione dati e procedura dettagliata: Creazione di un Windows Form localizzabile.
In generale, non è consigliabile usare un TableLayoutPanel controllo come contenitore per l'intero layout. Usare TableLayoutPanel i controlli per fornire funzionalità di ridimensionamento proporzionali alle parti del layout.
Le attività illustrate nella procedura dettagliata sono le seguenti:
Creazione di un progetto Windows Forms
Disposizione dei controlli in righe e colonne
Impostazione delle proprietà riga e colonna
Spanning Rows and Columns with a Control
Gestione automatica degli overflow
Inserimento di controlli con doppio clic nella casella degli strumenti
Inserimento di un controllo disegnandone il contorno
Riassegnazione dei controlli esistenti a un padre diverso
Al termine, si avrà una migliore comprensione del ruolo svolto da queste importanti funzionalità di layout.
Creazione del progetto
Il primo passaggio consiste nella creazione del progetto e nella configurazione del form.
Per creare il progetto
Creare un progetto di applicazione Windows denominato "TableLayoutPanelExample". Per altre informazioni, vedere Procedura: Creare un progetto di applicazione Windows Form .
Selezionare il modulo in Progettazione WindowsForm.
Disposizione dei controlli in righe e colonne
Il TableLayoutPanel controllo consente di disporre facilmente i controlli in righe e colonne.
Per disporre i controlli in righe e colonne tramite TableLayoutPanel
Trascinare un controllo TableLayoutPanel dalla Casella degli strumenti al form. Si noti che, per impostazione predefinita, il TableLayoutPanel controllo ha quattro celle.
Trascinare un Button controllo dalla casella degli strumenti nel TableLayoutPanel controllo e rilasciarlo in una delle celle. Si noti che il Button controllo viene creato all'interno della cella selezionata.
Trascinare altri tre Button controlli dalla casella degli strumenti nel TableLayoutPanel controllo, in modo che ogni cella contenga un pulsante.
Afferrare il quadratino di ridimensionamento verticale tra le due colonne e spostarlo a sinistra. Si noti che i Button controlli nella prima colonna vengono ridimensionati a una larghezza inferiore, mentre le dimensioni dei Button controlli nella seconda colonna sono invariate.
Afferrare il punto di manipolazione di ridimensionamento verticale tra le due colonne e spostarlo a destra. Si noti che i Button controlli nella prima colonna tornano alle dimensioni originali, mentre i Button controlli nella seconda colonna vengono spostati a destra.
Spostare il quadratino di ridimensionamento orizzontale verso l'alto e verso il basso per visualizzare l'effetto sui controlli nel pannello.
Posizionamento di controlli all'interno di celle tramite ancoraggio e ancoraggio
Il comportamento di ancoraggio dei controlli figlio in un TableLayoutPanel oggetto differisce dal comportamento in altri controlli contenitore. Il comportamento di ancoraggio dei controlli figlio è identico a quello degli altri controlli contenitore.
Posizionamento di controlli all'interno di celle
Selezionare il primo controllo Button. Modificare il valore della proprietà Dock in Fill. Si noti che il Button controllo si espande per riempire la cella.
Selezionare uno degli altri Button controlli. Modificare il valore della proprietà Anchor in Right. Si noti che viene spostato in modo che il bordo destro si trova vicino al bordo destro della cella. La distanza tra i bordi è la somma della Button proprietà del Margin controllo e della proprietà del Padding pannello.
Modificare il valore della Button proprietà del Anchor controllo in Right e Left. Si noti che il controllo viene ridimensionato in base alla larghezza della cella, con i Margin valori e Padding presi in considerazione.
Impostazione delle proprietà riga e colonna
È possibile impostare singole proprietà di righe e colonne usando le RowStyles raccolte e ColumnStyles .
Per impostare le proprietà di riga e colonna
Selezionare il TableLayoutPanel controllo nella finestra di progettazione Windows Form.
Nelle finestre Proprietà aprire l'insieme ColumnStyles facendo clic sul pulsante con i puntini di sospensione () accanto alla voce Colonne.
Selezionare la prima colonna e modificare il valore della relativa SizeType proprietà in AutoSize. Fare clic su OK per accettare la modifica. Si noti che la larghezza della prima colonna viene ridotta per adattarsi al Button controllo . Si noti anche che la larghezza della colonna non è ridimensionabile.
Nella finestra Proprietà aprire la ColumnStyles raccolta e selezionare la prima colonna. Modificare il valore della proprietà SizeType in Percent. Fare clic su OK per accettare la modifica. Ridimensionare il TableLayoutPanel controllo a una larghezza maggiore e notare che la larghezza della prima colonna si espande. Ridimensionare il TableLayoutPanel controllo in una larghezza inferiore e notare che i pulsanti nella prima colonna vengono ridimensionati per adattarsi alla cella. Si noti anche che la larghezza della colonna è ridimensionabile.
Nella finestra Proprietà aprire la ColumnStyles raccolta e selezionare tutte le colonne elencate. Impostare il valore di ogni SizeType proprietà su Percent. Fare clic su OK per accettare la modifica. Ripetere con la RowStyles raccolta.
Afferrare uno dei quadratini di ridimensionamento degli angoli e ridimensionare sia la larghezza che l'altezza del TableLayoutPanel controllo. Si noti che le righe e le colonne vengono ridimensionate man mano che cambiano le TableLayoutPanel dimensioni del controllo. Si noti anche che le righe e le colonne sono ridimensionabili con gli handle di ridimensionamento orizzontale e verticale.
Spanning Rows and Columns with a Control
Il TableLayoutPanel controllo aggiunge diverse nuove proprietà ai controlli in fase di progettazione. Due di queste proprietà sono RowSpan
e ColumnSpan
. È possibile utilizzare queste proprietà per impostare un controllo su più righe o colonne.
Per estendere righe e colonne con un controllo
Selezionare il Button controllo nella prima riga e nella prima colonna.
Nelle finestre Proprietà modificare il valore della
ColumnSpan
proprietà impostandola su 2. Si noti che il Button controllo riempie la prima colonna e la seconda colonna. Si noti anche che è stata aggiunta una riga aggiuntiva per supportare questa modifica.Ripetere il passaggio 2 per la
RowSpan
proprietà .
Inserimento di controlli con doppio clic nella casella degli strumenti
TableLayoutPanel può essere compilato facendo doppio clic sui controlli nella Casella degli strumenti.
Per inserire i controlli facendo doppio clic nella Casella degli strumenti
Trascinare un controllo TableLayoutPanel dalla Casella degli strumenti al form.
Fare doppio clic sull'icona del controllo Button nella Casella degli strumenti. Si noti che nella prima cella del controllo viene visualizzato TableLayoutPanel un nuovo controllo pulsante.
Fare doppio clic su diversi altri controlli nella Casella degli strumenti. Si noti che i nuovi controlli vengono visualizzati successivamente nelle celle non occupato del TableLayoutPanel controllo. Si noti inoltre che il TableLayoutPanel controllo si espande per contenere i nuovi controlli se non sono disponibili celle aperte.
Gestione automatica degli overflow
Quando si inseriscono controlli nel TableLayoutPanel controllo, è possibile che si esauriscano celle vuote per i nuovi controlli. Il TableLayoutPanel controllo gestisce automaticamente questa situazione aumentando il numero di celle.
Per osservare la gestione automatica degli overflow
Se nel controllo sono ancora presenti celle TableLayoutPanel vuote, continuare a inserire nuovi Button controlli fino a quando il TableLayoutPanel controllo non è pieno.
Quando il TableLayoutPanel controllo è pieno, fare doppio clic sull'icona Button nella casella degli strumenti per inserire un altro Button controllo. Si noti che il TableLayoutPanel controllo crea nuove celle per contenere il nuovo controllo. Inserire altri controlli e osservare il comportamento di ridimensionamento.
Modificare il valore della proprietà del controllo TableLayoutPanel , GrowStyle , su FixedSize. Fare doppio clic sull'icona Button nella casella degli strumenti per inserire Button i controlli fino a quando il TableLayoutPanel controllo non è pieno. Fare doppio clic sull'icona Button nella casella degli strumenti . Si noti che viene visualizzato un messaggio di errore da Progettazione Windows Form che informa che non è possibile creare righe e colonne aggiuntive.
Inserimento di un controllo disegnandone il contorno
È possibile inserire un controllo in TableLayoutPanel e determinarne la dimensione disegnandone il contorno in una cella.
Per inserire un controllo disegnandone il contorno
Trascinare un controllo TableLayoutPanel dalla Casella degli strumenti al form.
Nella Casella degli strumentifare clic sull'icona del controllo Button . Non trascinarla nel form.
Spostare il puntatore del mouse sul controllo TableLayoutPanel . Osservare che il puntatore assume la forma di un mirino con l'icona del controllo Button associata.
Fare clic e tenere premuto il pulsante del mouse.
Trascinare il puntatore del mouse per disegnare la struttura del controllo Button . Una volta ottenuta la dimensione desiderata, rilasciare il pulsante del mouse. Si noti che il Button controllo viene creato nella cella in cui è stato disegnato il contorno del controllo.
Non sono consentiti più controlli all'interno di celle
Il TableLayoutPanel controllo può contenere un solo controllo figlio per cella.
Per dimostrare che non sono consentiti più controlli all'interno di celle
- Trascinare un Button controllo dalla casella degli strumenti nel TableLayoutPanel controllo e rilasciarlo in una delle celle occupate. Si noti che il TableLayoutPanel controllo non consente di rilasciare il Button controllo nella cella occupata.
Scambio di controlli
Il TableLayoutPanel controllo consente di scambiare i controlli che occupano due celle diverse.
Per scambiare i controlli
- Trascinare uno dei Button controlli da una cella occupata e rilasciare in un'altra cella occupata. Si noti che i due controlli vengono spostati da una cella all'altra.
Passaggi successivi
È possibile ottenere un layout complesso usando i pannelli e i controlli di layout in combinazione. Alcuni suggerimenti per un'analisi più ampia dell'argomento includono:
Provare a ridimensionare uno dei Button controlli con dimensioni maggiori e notare l'effetto sul layout.
Incollare una selezione di più controlli nel TableLayoutPanel controllo e notare come vengono inseriti i controlli.
I pannelli layout possono contenere altri pannelli layout. Provare a rilasciare un controllo TableLayoutPanel nel controllo esistente.
Ancorare il controllo TableLayoutPanel al form padre. Ridimensionare il form e notare l'effetto sul layout.
Vedi anche
- FlowLayoutPanel
- TableLayoutPanel
- Procedura dettagliata: disposizione dei controlli in Windows Form usando FlowLayoutPanel
- Procedura dettagliata: Disposizione dei controlli in Windows Form usando guide di allineamento
- Procedura dettagliata: creazione di un Windows Form ridimensionabile per l'inserimento di dati
- Procedura dettagliata: Creazione di un Windows Form localizzabile
- Procedure consigliate per il controllo TableLayoutPanel
- Panoramica sulla proprietà AutoSize
- Procedura: Ancorare i controlli in Windows Form
- Procedura: Agganciare i controlli in Windows Form
- Procedura dettagliata: disposizione di controlli Windows Form usando spaziatura, margini e la proprietà AutoSize
.NET Desktop feedback