Label che non si ridimensiona correttamente
-
Ciao,
ho una matrice di label. L'elemento 0 (l'unico "cablato" nel form) è definito con AutoSize = True e WordWrap = True, in modo che se vi inserisco un testo più lungo della dimensione della label, questa si espande in altezza.
Questo funziona quasi sempre. Alcune volte però il testo va sì a capo, ma la label non si espande, così che il testo sembra "uscire" da sotto la label stessa. Ci sono casi in cui ho 3 label una sotto l'altra, la prima e la seconda sono alte quanto serve, la terza è alta l'equivalente di una riga di testo ma il testo occupa due righe. Se scambio fra loro le ultime due label, dato che si posizionano dinamicamente una sotto l'altra, la terza label è subito sotto quella che non si allarga a dovere, ed il testo della seconda che deborda è coperto dalla terza label (lo so, sarebbe meglio postare un'immagine...).
Non capisco il motivo di tutto ciò. Se costretto posso pensare di risolvere il problema calcolando l'altezza della label "a mano", ma prima vorrei capire cosa non va.
Grazie.
-
credo che sia un problema della Label.
credo che sia sufficiente "ricordare" alla label l'Autosize scrivendo:
Label1.AutoSize = True
dopo aver impostato la sua Caption, o dopo averla posizionata, a seconda del punto dove ti conviene di più posizionare l'istruzione 
TheTruster
-
Ciao TheTruster,
ho provato, ma senza successo.
In realtà credo di aver identificato meglio l'origine del problema, anche se non so come risolverlo. Ho provato a controllare le dimensioni del testo e della label, ed ho scoperto che la label incriminata è lunga 1965, mentre il testo è di 1950. Tecnicamente il testo non dovrebbe andare a capo, invece lo fa, credo a causa dell'uso di BorderStyle = 1. Infatti se metto BorderStyle = 0 la label si allunga correttamente.
Sembra quindi che il testo vada a capo secondo un criterio (se sfora dalla larghezza della label al netto dei bordi), mentre la label si allunga secondo un criterio diverso (se il testo sfora dalla larghezza esterna della label).
Se è così, non so proprio che fare...
Ultima modifica di meccallous; 11-04-2006 21:54
-
Ho risolto, anche se non certo in modo ottimale: dato che il testo può andare a capo al massimo una volta, mi limito a controllare che la lunghezza del testo (con TextWidth) + 30 non superi la larghezza della label; se lo fa ridimensiono la label e tutto funziona.
Ora però mi piacerebbe capire se il motivo è effettivamente quello che ho ipotizzato nel messaggio precedente, ed anche se c'è un modo più "pulito" di ridimensionare la label.
Ciao.
Potrebbero interessarti anche ...
-
Risposte: 1
Ultimo Post: 16-10-2012, 12:06
-
Risposte: 5
Ultimo Post: 21-06-2010, 17:52
-
Risposte: 0
Ultimo Post: 18-05-2008, 12:08
-
Risposte: 1
Ultimo Post: 16-05-2003, 17:54