2010-07-22 13 views
6

Ho un'etichetta che desidero allineare a destra per poter essere allineata a una casella di testo.
Designer in Visual Studio 2010 Express hanno generato questo codice per me.NET Label.TextAlign sembra non funzionare

this.lblAddData.AutoSize = true; 
this.lblAddData.Location = new System.Drawing.Point(167, 452); 
this.lblAddData.Name = "lblAddData"; 
this.lblAddData.Size = new System.Drawing.Size(25, 14); 
this.lblAddData.TabIndex = 5; 
this.lblAddData.Text = "text"; 
this.lblAddData.TextAlign = System.Drawing.ContentAlignment.MiddleRight; 

[testo] [testo] Nel codice a cambiare il testo programmaticly

lblAddData.Text = "a very long text"; 

ma il testo si nasconde dietro la texbox che ho posizionato accanto all'etichetta sul lato destro .

[a ver] [testo]

Chiedere a qualcuno sperimentato lo stesso problema prima?
So che mancano informazioni quindi chiedimi se hai bisogno di maggiori informazioni.
migliori saluti
Görgen

risposta

14

Bene, ho individuato l'errore da solo; AutoSize è impostata su true, che è di default behavour

this.lblAddData.AutoSize = true; 

Quando ho cambiato questo per falso ha funzionato come ho ipotizzato dovrebbe.

3

I TextAlign proprietà controlla come il testo è allineato all'interno dell'etichetta:

Ottiene o imposta l'allineamento del testo nell'etichetta.

Se si modifica la lunghezza del testo, è necessario ricalcolare lo Location dell'etichetta che è sempre in alto a sinistra.

ho trovato questo Code Project article che, pur probabilmente sopra le righe per ciò che si vuole, afferma:

Inoltre, se avete intenzione di modificare il testo dell'etichetta (ad esempio, quando la localizzazione dell'applicazione) o allineamento del testo, dovrai ridimensionare/riposizionare i controlli. Pertanto, ho creato questa semplice etichetta che si occupa di tali dettagli.

(il mio grassetto)

Così si potrebbe utilizzare lo stesso algoritmo per riposizionare l'etichetta.

+2

/facepalm Davvero Microsoft? Veramente? –

Problemi correlati