2009-12-04 9 views
5

Descrizione Stavo cercando di creare un FlowLayoutPanel che può essere esteso, ad esempio in modo orizzontale.Controllo ridimensionamento cannnot in un controllo FlowLayoutPanel

FlowLayoutPanel e il suo ancoraggio componente secondario è stato impostato su Alto-sinistra-destra

FlowLayoutPanel direzione è stato impostato su TopDown.

-> Quando si reizializza il FlowLayoutPanel, i relativi componenti secondari non vengono ridimensionati in base alle esigenze.

Passo di riprodurre

  1. creare un controllo FlowLayoutPanel sul modulo.

  2. Impostare FlowDirection di FlowLayoutPanel su TopDown.

  3. Creare controlli Button e posizionarlo nel controllo FlowLayoutPanel.

  4. selezionare il pulsante e il FlowLayoutPanel e impostare il loro ancoraggio al Top-sinistra-destra

  5. tenta di estendere FlowLayoutPanel sulla strada orizzontale.

-> FlowLayoutPanel è ridimensionata, ma non il pulsante

risposta

6

Il FlowLayoutPanel serve solo per il layout è controlli figlio in modo dinamico. Ciò non significa che verranno ridimensionati automaticamente all'interno di FlowLayoutPanel. Sto indovinando che il FlowLayoutPanel ignora le proprietà di ancoraggio dei suoi controlli figlio.

Per ottenere questo effetto è necessario ridimensionare manualmente i controlli figlio sull'evento SizeChanged di FlowLayoutPanel.

A questo punto, tuttavia, è possibile riconsiderare se FlowLayoutPanel è realmente ciò che si desidera utilizzare. Se sai che vuoi sempre un pulsante per riempire la larghezza del FlowLayoutPanel, potresti anche incollarlo in un pannello e usare le ancore, o impostarne la proprietà Dock.

4

Il controllo FlowLayoutPanel calcola la larghezza di una colonna implicita dal controllo figlio più ampio nella colonna. Tutti gli altri controlli in questa colonna con le proprietà di ancoraggio o di ancoraggio sono allineati o allungati per adattarsi a questa colonna implicita. Il comportamento funziona in modo simile per le direzioni del flusso orizzontale. Il controllo FlowLayoutPanel calcola l'altezza di una riga implicita dal controllo figlio più alto nella riga e tutti i controlli figlio ancorati o ancorati in questa riga sono allineati o ridimensionati per adattarsi alla riga implicita.

controllo documentazione MSDN qui http://msdn.microsoft.com/en-us/library/ms171633.aspx

+0

Ci deve essere un'opzione come "FlowBreak", che consente di impostare l'opzione di ridimensionamento per i singoli controlli. Ho una situazione simile in cui c'è un pannello particolare all'interno del set complessivo di controlli che voglio sempre occupare tutta la larghezza, ma voglio comunque il layout automatico per tutto il resto. La configurazione attuale devo scegliere l'una o l'altra ... Voglio entrambe. –