Resize form - Toolstriplabel

domenica 22 giugno 2008 - 13.58

edward_radical Profilo | Newbie

All'interno di un form ho un toolstrip al quale, considerato che per definizione non può visualizzare testo (ma ha comunque il parametro text??) in quanto è un semplice contenitore, ho aggiunto una toolstriplabel che contiene alcune informazioni descrittive.

I problemi nascono in fase di resize orizzontale del form in quanto se la dimensione diventa inferiore a quella del testo contenuto nella toolstriplabel questa sparisce..

Ho trovato ad impostare l'attributo visible a true al toolstrip e alla toolstriplabel in fase di resize del form, ma senza alcun risultato...anzi ho ottenuto un overflow!

Quello che vorrei ottenere è che in fase di resize se il testo della toolstriplabel non è visibile venga tagliato, ma comunque visibile.

Avete qualche consiglio?

Grazie in anticipo.

aiedail92 Profilo | Expert

Ciao

In realtà la ToolStripLabel non sparisce, ma viene inviata (se la porprietà CanOverflow del ToolStrip lo consente) ad un menu di Overflow, dove vengono inseriti gli elementi che per ragioni di spazio non riescono a stare nel ToolStrip. Non puoi annullare questo comportamento (la disabilitazione dell'Overflow nasconde semplicemente il pulsante per selezionare gli elementi "di troppo", ma non fa sì che questi non vengano nascosti), ma puoi sempre stabilire delle "priorità", cioè decidere quali elementi debbano essere mandati al menu di Overflow quando necessario. Per farlo imposta la proprietà Overflow della ToolStripLabel su Never. In questo modo prima di mandare al menu di Overflow quella ToolStripLabel, verranno mandati gli altri elementi, e quindi, solo se ancora non c'è abbastanza spazio, la tua ToolStripLabel.

Luca

edward_radical Profilo | Newbie

Grazie per l'informazione!
Considerata l'impossibilità di realizzare quanto descritto, ho cambiato approccio.
Ho utilizzato una semplice label della quale nell'evento resize del form ho manipolato le proprietà:
- autosize
- width
- autoellipsis

in modo tale da gestire manualmente il resize. L'effetto è riuscito, se la label non ci sta viene tagliata e tramite l'autoellipsis vengono impostati i (...) che in windows rappresentano la presenza di altro testo e viene emesso un tooltip che contiene completamente il testo tagliato.

Metodo forse poco elegante, ma efficace.

Grazie ancora per l'aiuto

aiedail92 Profilo | Expert

Era quello che ti avrei suggerito io

Ti do un consiglio: invece che ricambiare tutte le volte le proprietà sul resize, impostale una volta sola, in modo da velocizzare l'esecuzione. Inoltre, invece che ridimensionare a mano la label, puoi impostare la proprietà Anchor (Top, Left, Right) così la label si ridimensiona automaticamente lasciando invariate le distanze dai bordi.

Luca
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5