Foros del Web » Programación para mayores de 30 ;) » .NET »

Ajustar Width de Textbox dinamicamente

Estas en el tema de Ajustar Width de Textbox dinamicamente en el foro de .NET en Foros del Web. Hola que tal, estoy haciendo una aplicacion que tiene un textbox que debe de aumentar el Width a medida que el usuario escriba en el. ...
  #1 (permalink)  
Antiguo 01/02/2012, 06:40
 
Fecha de Ingreso: abril-2010
Mensajes: 82
Antigüedad: 14 años
Puntos: 2
Pregunta Ajustar Width de Textbox dinamicamente

Hola que tal,

estoy haciendo una aplicacion que tiene un textbox que debe de aumentar el Width a medida que el usuario escriba en el. Es decir, si originalmente tiene el mensaje
"Abc", debe medir de Width lo que "mide" el string "Abc" en pixels digamos. Para hacer eso estoy usando este codigo:


AreaGrafica = ObjTexto.CreateGraphics
LargoCadena = AreaGrafica.MeasureString(ObjTexto.Text ,ObjTexto.Font)
ObjTexto.Width = LargoCadena.Width
ObjPanel.Width = ObjTexto.Width + 6
AreaGrafica.Dispose()

Y eso me calcula un width acorde al font de la cadena, su larog etc. Bastante copado.
Pero me tengo un problemita cuando escribo de manera dinamica, que es que cuando aparece una letra nueva, nose si estara mal calculado el width o que, pero se me pasa a la segunda linea de mi textbox, es decir no hace lo que quiero......o el textbox no crece a tiempo, o esta mal calculado, la cosa es que no anda.

Alguien ya ha hecho esto?? me puede ayudar??

Gracias
  #2 (permalink)  
Antiguo 01/02/2012, 09:19
 
Fecha de Ingreso: abril-2010
Mensajes: 82
Antigüedad: 14 años
Puntos: 2
Respuesta: Ajustar Width de Textbox dinamicamente

Gente lo cierro yo el tema porque encontre la respuesta, se hace con el metodo MesaureText(byval Text as string, byval font as font)

Aplicado a mi ejemplo anterior seria igual solo que :

LargoCadena = TextRender.MeasureText(Obj.Text,Obj.Font)

Obj.Width = LargoCadena.Width

Lo paso por si a alguno le interesa.

Saludos

Etiquetas: textbox, vbnet
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:14.