[ Foro de C# ]

Efectos en textbox

09-Mar-2016 23:21
Jorge Amaya
17 Respuestas

Buenas tardes, antes que nada agradezco la respuesta que puedan brindarme, estoy aprendiendo a programar en c#; bueno al punto: he diseñado un programa que tiene varios botones y uno de los Textbox (pantalla prinicipal) , muestra la información que envio (cada ves q pulso un boton); quiero que el textbox pestañee, como señal de que he pulsado el mismo boton o otro diferente.  Como puedo realizar este efecto.


13-Mar-2016 00:45
Nacho Cabanes (+30)

No entiendo que es eso de que "pestañee". ¿Qué cambie de color durante un instante?

Además, ¿qué entorno usas? ¿Windows Forms?


13-Mar-2016 00:51
Jorge Amaya

Hola gracias por responder..uso el entorno windows form,  me refiero que en la pantalla textbox..se apague y aparesca la informacion actualizada...como señal de que se ha pulsado algun boton....


13-Mar-2016 00:54
Jorge Amaya

No puedo conseguir ese efecto...espero puedan ayudarme..


13-Mar-2016 01:00
Nacho Cabanes (+30)

Un textbox no es una pantalla completa, sino sólo una casilla de introducción de texto.

Puedes cambiar su texto por cualquier otro valor si modificas su propiedad "Text":

textBox1.Text = "Hola";

Si quieres que el cambio sea más evidente, también puedes cambiar su color de texto (ForeColor) o su color de fondo (BackColor).


13-Mar-2016 01:11
Jorge Amaya

En esta oportunidad estoy utilizando este textbox solo para visualizar datos ,  cuando me refiero se apague en realidad quiero decir que se limpie y se visualice la info actualizada , pero quiero q se pueda ver dicho cambio (q no sea tan rapido), el color de fonfo debe ser el mismo (negro) y el texto tambien del mismo color es por ello q necesito ver la diferencia cuando se pulse algun boton....


13-Mar-2016 01:14
Nacho Cabanes (+30)

Pues desde el evento Click de dicho botón deberías cambiar el valor de la propiedad Text de ese TextBox.

 
private void button1_Click(object sender, EventArgs e)
{
    textBox1.Text = "Hola";
}
 


 


13-Mar-2016 01:18
Jorge Amaya

Disculpame, con eso voy a conseguir el efecto que deseo?????


13-Mar-2016 01:25
Jorge Amaya

Supongamos que dos botones  tengan el mismo texto, cuando pulso uno de ellos vere la diferencia en el textbox?....osea se limpie y luego vea el mismo texto...?


13-Mar-2016 03:25
DG. Corporation. (+4)

Buenas Jorge Amaya.

Creo que Comprendí tu petición.

Este efecto tiene que ver con el tema de los hilos, pero no puedes usar un hilo secundario o sub-proceso porque te daría un error.

Entonces el efecto se debe realizar en el hilo principal y se debe poner un contador.
Cuando se pone un contador en el hilo principal, se frisa la aplicación, pero si utilizas un métodoque se llama  Application.DoEvents() no ocurre esto (Esto puede consumir mas recursos).

Hice un método que se llama Destacar el método parpadea el texto de un TextBox que se llama TextBox1. Esto lo logre con dos contadores uno para quitar la frase y otro para presentarla.

Este es el código:

       private void Destacar(String Texto){
        //El 1 < 2 determina el grado de parpadeo.

        for(int i=0;i < 2; i++){

         //Ocultar el mensaje.
         System.Threading.Thread.Sleep(10);
         TextBox1.Clear();
         Application.DoEvents();
         //Fin de para ocultar el mensaje.

         //Mostrar el mensaje.
         System.Threading.Thread.Sleep(10);
         TextBox1.Text = Texto;
         Application.DoEvents();
         //Fin de para mostrar el mensaje.

         }//Fin del for.    
        }//Fin del metodo Destacar.


       private void Boton1_Click(object sender, EventArgs e)
       {
           this.Destacar("Texto Cambiado por el boton1");
       }


Use un for para que puedas cambiar el grado como parpadea el texto.

No sé si es correcto utilizar mucho   el Application.DoEvents(), pero te logra el
resultado deseado.

                                                                                                                                       Buena suerte.


13-Mar-2016 03:36
DG. Corporation. (+4)

Este es una aplicación en Windows Forms para mostrarte un ejemplo.

Es un executable y esta en mega.

https://mega.nz/#!585kSTRI!GoD_oyGbHEzUs7yovjJoDpWu_JyhEN_xroW6v3T8Ujw


13-Mar-2016 04:22
Jorge Amaya

Perfecto DG.   Corporation.
Muchas Gracias, ese es el efecto que busco....es mi primera aplicación y tiene como 40 botones, ahora tengo que buscar la manera de incorporarlo.
OBS: Las disculpas del caso a los compañeros que han querido brindarme su apoyo, lamentablemente
no he podido hacerme entender, por mi inexperiencia. Gracias.

Saludos.
J.A.


13-Mar-2016 06:04
Jorge Amaya

Hola, para comentar que ya esta RESUELTO.
Obs: A veces no parpadea, pero debo suponer que tengo que probar cambiando algunos valores....
Otra consulta, no se si debo empezar otra conversación a parte o puedo aprovechar esta conversación.
Tengo un textbox, donde ingreso una dirección IP y quiero evitar que se borre cuando cierro el programa.
Como puedo hacerlo?
J.A.


13-Mar-2016 15:24
DG. Corporation. (+4)

Hola, Tienes que guardar la dirección IP en una base de datos como SQL o puedes usar
serialización.

Cuando se cierra el programa se eliminan todos los componentes.


13-Mar-2016 17:41
Jorge Amaya

Hola, prefiero no usar sql,  al finalizar lo convertire Portable...como es eso de serializacion??? Es posible un pequeño ejemplo..gracias..


14-Mar-2016 00:07
Nacho Cabanes (+30)

Yo usaría un fichero de texto. Es sencillo, y, al contrario que la serialización, no guarda todo tu objeto, sino sólo los datos que tú elijas:

http://www.aprendeaprogramar.com/mod/resource/view.php?id=758
 


14-Mar-2016 01:46
DG. Corporation. (+4)

Si, Como es una aplicación sencilla es más fácil usar un fichero de texto.


14-Mar-2016 01:48
Jorge Amaya

Hola, como podría guardar la IP, (ingresado por textbox) y volverla haber cuando ejecute el aplicativo nuevamente, empleando un fichero txt; he leido el link, no se como integrarlo en mi programa..
Saludos.
J.A.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)