Título: ayuda con textbox (Solucionado) Publicado por: nolasco281 en 21 Abril 2014, 00:38 am Hola como están.
Mi siguiente duda estoy tratado de hacer algo en un textbox que tenga un texto predeterminado pero que este se vea claro, de la siguiente forma. (http://www.telerik.com/help/winforms/media/editors-textbox-overview001.png) Como ven en user name y cuando se de click se quite ese texto y pueda ingresar datos. Estaba leyendo MSDN pero son demasiadas funciones las que tiene me llevara un tiempo leerlas todas. Espero puedan ayudarme gracias y saludos PD: estoy trabajando en VB Título: Re: ayuda con textbox Publicado por: ivancea96 en 21 Abril 2014, 01:22 am Bueno yo en C++ aún no hice este tipo de formularios, pero te digo:
Ese texto es el "Placeholder". MSDN-Textbox.placeholdertext (http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.textbox.placeholdertext) Título: Re: ayuda con textbox Publicado por: eferion en 21 Abril 2014, 09:19 am Bueno yo en C++ aún no hice este tipo de formularios, pero te digo: Ese texto es el "Placeholder". MSDN-Textbox.placeholdertext (http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.textbox.placeholdertext) Eso es si está trabajando con XAML, que no creo que sea el caso. Por la pinta de ese formulario, yo diría que está trabajando con los controles nativos de .NET... lo que no queda claro es con qué versión. En este caso, una opción sencilla es controlar los eventos de "foco" del control. Lo suyo es crear una clase que derive de "TextBox" y controle los eventos de "foco", de tal forma que: * si el control pierde el foco y no tiene contenido, se escriba ese texto en el fondo ( puedes empezar por hacer una versión sencilla escribiendo el contenido en su propiedad "Text" y cambiar el color de la fuente por un gris ). * al recibir el foco el control, si su contenido es éste que tiene por defecto, se borre su contenido, permitiéndole al usuario una entrada limpia. Este comportamiento es muy básico y se puede perfeccionar, por supuesto, pero como base sirve. Título: Re: ayuda con textbox Publicado por: nolasco281 en 21 Abril 2014, 13:31 pm Mil gracias por contestar como siempre la los que se toman la molestia de contestar y alos que pasan por si pueden ayudar.
Bueno he estado investigando y viendo algunos videos este es el codigo que tengo y lo estoy haciendo en una clase Código
La idea es de aca pero no me sale. https://www.youtube.com/watch?v=2sziyeOS8Ko (https://www.youtube.com/watch?v=2sziyeOS8Ko) Aca una imagen de lo que tengo (http://3.bp.blogspot.com/-AaC4lJPZH5o/U1UBZCz9TjI/AAAAAAAAAqs/Lv_XpXt8FcU/s1600/Forosdf.png) disculpen si se ve mal estoy a la carrera saludos y muchas gracias de nuevo Título: Re: ayuda con textbox Publicado por: eferion en 21 Abril 2014, 13:38 pm Con ese código estás haciendo que la marca de agua aparezca siempre que no haya texto en el control... es un tratamiento más refinado pero da más problemas.
En teoría con la gestión del foco te debería servir... además no tendrías que lidiar con las pulsaciones del teclado... con la opción "pegar" del menú contextual... etc. Si quieres seguir con tu idea de que sea sensible al contenido del TextBox en edición quizás sería más sencillo "pintar" la marca de agua en el evento OnPaint en vez de pasarla al Text... la ventaja que consigues es que no saltan eventos cada vez que pones / quitas la marca de agua y no tienes que preocuparte por la posición del "caret". Título: Re: ayuda con textbox Publicado por: Eleкtro en 21 Abril 2014, 23:33 pm Código
O usando API's: Código
Saludos. Título: Re: ayuda con textbox Publicado por: nolasco281 en 22 Abril 2014, 02:29 am Gracias por responder a todos estoy probando lo que me comento eferion y ahi voy solo me falta probar lo de Eleкtro muchas gracias de nuevo saludos a todos.
Título: Re: ayuda con textbox Publicado por: Eleкtro en 22 Abril 2014, 05:30 am Esto lo acabo de escribir para reemplazar a los dos métodos que te proporcioné antes y extender su funcionalidad,
es un ayudante (una helper class) bastante personalizable para asignar/eliminar hints/watermarks a los controles. EDITO: Código Actualizado Código
Ejemplo de uso: Código
Título: Re: ayuda con textbox Publicado por: nolasco281 en 22 Abril 2014, 11:29 am Hola primera mente.
Como siempre digo hay que agradecer a el grupo de personas que se toman el tiempo de ver y aun más a los que se toman el tiempo de ayudar a otro. Muchas gracias. Dicho esto estoy ya estudiando el código que tuviste la gentileza de compartir y tratando de entender muchas cosas que desconozco, también trate de probar lo que me comento eferion de la gestiones de foco probé une ejemplo que está en msdn y no me funciono no sé si será por la versión del VB pero me tiraba errores por todos lados. Nota: La gestión de foco si no me equivoco hacia relación al Gotfocus y LostFocus si no me equivoco. Con el código que comparte Eleкtro solo tienen que crear una clase y funciona de maravilla. Acá la prueba y como el mismo menciona muy muy modificable. (http://2.bp.blogspot.com/--bN7EY7Xs44/U1Yxp7S8DEI/AAAAAAAAAq8/39uMroYp124/s1600/ForoMarca.png) Solo me falta agradecer de nuevo y para los curiosos esto va genial ya que hay poca información en cuanto a las marcas de agua Saludos a todos y un ;-) para todos los que ayudan a los demás. Cuídense. PD: pueden recomendarme alguna pagina o libro que trate este tipo cosas se que parece meramente estetica pero aveces no lo son. Saludos. Título: Re: ayuda con textbox Publicado por: Eleкtro en 22 Abril 2014, 12:47 pm Dicho esto estoy ya estudiando el código que tuviste la gentileza de compartir y tratando de entender muchas cosas que desconozco El código podría ser MUCHO más sencillo ...muchisimo más, pero decidí usar Reflection para compatibilizar la propiedad TextAlign con otros controles de los que carecen de dicha propiedad y otros usan una enumeración distinta (de todas formas la propiedad al final decidí eliminar del código porque me estaba dando por culo al intentar restaurar el valor original del control al suscribirme al evento KeyDown del Textbox y quedaba un efecto muy feo xD), y también para los controles que no tuvieran propiedades como Font, Forecolor, etc... A raíz de usar Reflection lo bueno es que los métodos SetProperties y RestoreProperties son bastante dinámicos y para extender la funcionalidad de la Class en general solo deberías añadir más nombres de propedades en la (sub)Class "HintProperties", y usar el parámetro SkipProperties al llamar a los métodos SetProperties/RestoreProperties (en caso de que sea necesario omitir alguna propiedad). Eso sí, no le añadí ningún Error-Handling (try/catch) ya que creo haber tenido todos los posibles conflictos en cuenta, mientras la Class se use con controles nativos de .NET framework no debería saltar ninguna excepción (espero que no). ¿Información sobre watermarks en controles?, no sabría decirte... tampoco yo creo que existe mucha documentación al respecto, puedes buscar y estudiar otros sources aquí: http://www.google.com/search?q=codeproject+control+watermark&ie=utf-8&oe=utf-8&lr=lang_en#lr=lang_en&q=codeproject+control+watermark&safe=active&tbs=lr:lang_1en hay varios métodos para hacerlo (por ejemplo, con Brushes) Saludos! Título: Re: ayuda con textbox Publicado por: nolasco281 en 22 Abril 2014, 22:50 pm Gracias por toda la ayuda proporcionada.
Saludos y muchisimas gracias. |