2010-09-09 11 views
12

C'è un modo per fare in modo che il contenuto testuale dei controlli su un TableLayoutPanel si allinei correttamente? Ho etichette nella colonna 0 e caselle di testo (o talvolta controlli ComboBox o NumericUpDown) nella colonna 1, ma il testo nell'etichetta è di solito un pixel o due fuori (verticalmente) sulla maggior parte delle righe.Allineamento verticale dei controlli in un TableLayoutPanel

risposta

0

Oh, vuoi dire che la linea di base del testo per l'etichetta è diversa rispetto ad altri controlli? In tal caso, provare a rimuovere le ancore verticali. Puoi giocare anche con i margini.

+0

Provato, ma non funziona con tutto; I combobox sono ancora mal allineati. – Flynn1179

0

Quello che faccio di solito è metterli in un contenitore ad esempio un pannello e ancorarli relativamente a quello. I vantaggi dell'aggiunta di un contenitore è che puoi anche ridurre il numero di gestori di Win. In tal caso ciò non avrebbe importanza, perché hai già il TablelayoutPanel quindi in pratica per tutti i controlli hai solo un singolo gestore.

6

È possibile impostare le seguenti proprietà:

per Label
1.Autosize = false;
2.TextAlign = MiddleLeft;

per i controlli come Combobox, Casella di testo

goto Visualizza -> Barre degli strumenti -> Layout

ora è possibile dare il layout dei controlli molto facilmente dalla barra degli strumenti selezionando più controlli alla volta .... ........

+1

È necessario rimuovere anche l'ancora superiore. –

1

Suggerirei di lasciare le ancore così come sono e di aggiungere un margine superiore ai controlli troppo alti. Un margine di 3,6,3,0 è normale per me quando aggiungo etichette. Come ha detto Javed, puoi selezionare più controlli facendo clic sul controllo. Mi irrita sapere che i ComboBox sono più grandi di un pixel rispetto a Texbox. Non posso fare molto per quello però.

10

Ci ho lavorato qualche giorno fa. Ho ottenuto tutto come richiesto. Prova questo:

Per Etichette

  • etichetta Stacca dal TableLayoutPanel
  • Set dockstyle a inizio
  • punti Set di ancoraggio nessuno
  • TextAlign = MiddleLeft
  • Poi basta posizionarlo nella tabella colonna di layout
  • Assicurati che l'altezza dello stile della riga corrisponda all'altezza dell'etichetta se hai un'etichetta backcolor.

Per caselle di testo

  • Staccare caselle di testo da TableLayoutPanel
  • Set dockstyle a nessuno
  • Set punti di ancoraggio nessuno
  • TextAlign = MiddleLeft (o come richiesto)
  • Poi basta posizionarlo nella colonna di layout tabella
7

Seleziona tutti i controlli nel pannello di layout della tabella. Nella scheda delle proprietà, assicurati che l'ancora sia impostata su "sinistra". Penso che sia impostato su "in alto, a sinistra".
Spero che metta le cose in ordine.

+0

Hai provato? – quantum

+0

Migliore e più semplice. Ho trovato la stessa soluzione, ma ho già trovato la soluzione. – Aakash

Problemi correlati