2010-07-22 15 views
6

Tengo una etiqueta que quiero alinear a la derecha para poder colocar alineado a un cuadro de texto.
El diseñador en Visual Studio 2010 Express han generado este código para mí.NET Label.TextAlign parece no funcionar

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; 

[Texto] [cuadro de texto] En el código se cambia el texto programmaticly

lblAddData.Text = "a very long text"; 

pero el texto está escondido detrás el texbox que coloqué al lado de la etiqueta en el lado derecho
.

[a ver] [cuadro de texto]

Haga que alguien experimentado el mismo problema antes?
Sé que falta información así que pregúntame si necesitas más información.
Best Regards
Görgen

Respuesta

14

Bueno, vi el error yo mismo; AutoSize se establece en true, es decir behavour predeterminado

this.lblAddData.AutoSize = true; 

Cuando cambié a esta falsa funcionó como he asumido que debería.

3

Los TextAlign propiedad controla cómo se alinea el texto dentro de la etiqueta:

Obtiene o establece la alineación del texto en la etiqueta.

Si cambia la longitud del texto, debe volver a calcular el Location de la etiqueta que siempre está arriba a la izquierda.

he encontrado este Code Project article que, aunque probablemente en la parte superior por lo que quieres, afirma:

Por otra parte, si se va a cambiar el texto de la etiqueta (por ejemplo, cuando la localización de la aplicación) o Alineación de texto, , tendrá que cambiar el tamaño/la posición de los controles. Por lo tanto, he creado esta etiqueta simple que se encarga de tales detalles.

(mi negrita)

lo que podría utilizar el mismo algoritmo para cambiar la posición de la etiqueta.

+2

/facepalm ¿Realmente es Microsoft? De Verdad? –

Cuestiones relacionadas