+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 4 su 4

Label che non si ridimensiona correttamente

  1. #1
    meccallous non è in linea Scolaretto
    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.

  2. #2
    L'avatar di TheTruster
    TheTruster non è in linea Moderatore Globale Ultimo blog: Mouse Wheel in Visual Basic 6 - ActiveX
    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
    ℹ️ Leggi di più su TheTruster ...

  3. #3
    meccallous non è in linea Scolaretto
    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 

  4. #4
    meccallous non è in linea Scolaretto
    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.

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Valutare correttamente una variabile
    Da Viper65 nel forum Visual Basic 6
    Risposte: 1
    Ultimo Post: 16-10-2012, 12:06
  2. impostare correttamente tabelle db
    Da Sn0rky nel forum Altri Database Server
    Risposte: 5
    Ultimo Post: 21-06-2010, 17:52
  3. [textbox] sposta e ridimensiona
    Da francof nel forum Visual Basic 6
    Risposte: 0
    Ultimo Post: 18-05-2008, 12:08
  4. ocx registrato non correttamente
    Da af74 nel forum Visual Basic 6
    Risposte: 1
    Ultimo Post: 16-05-2003, 17:54