none
Eventos Click y Leave RRS feed

  • Pregunta

  • Buenas tardes.

    Tengo una duda con respecto a los los eventos click y leave, tengo dos funciones para dar formato a los textbox según sea el evento, al principio cuando las cree todo funcionaba, pero ahora al darle click al texbox ejecuta la función de ese evento pero luego entra a la función del leave por ej este texbox:

    private void TCtaBN_Click(object sender, EventArgs e) { if (TCtaBN.Text == "ND" || string.IsNullOrEmpty( TCtaBN.Text)) { Limpiar2(TCtaBN); } } private void TCtaBN_Leave(object sender, EventArgs e) { FormatoTbx(TCtaBN, TCtaBN.Text); }

    Y esas son las funciones asignadas a cada evento.

     public void FormatoTbx(TextBox tbx, string campo)
            {
               
                if (string.IsNullOrEmpty(campo) || campo == "?" || campo == "<no puesta>" || campo == "?    " || campo == "ND" || campo == "<falta poner>")
                {
                    tbx.ForeColor = Color.Red;
                    tbx.Text = "ND";
                    tbx.TextAlign = HorizontalAlignment.Center;
                }
                else
                {
                  
                    tbx.ForeColor = Color.Black;
                    tbx.TextAlign = HorizontalAlignment.Right;
                    if (tbx.Name == "TDir" || tbx.Name == "TConyuge")
                    {
                        tbx.ForeColor = Color.Black;
                        tbx.TextAlign = HorizontalAlignment.Left;
                    }
                }

            }

            public void Limpiar2(TextBox tbx)
            {
                if (tbx.Name == "TDir" || tbx.Name == "TConyuge")
                {
                    tbx.ForeColor = Color.Black;
                    tbx.Text = "";
                    tbx.TextAlign = HorizontalAlignment.Left;
                }
                else
                {
                    tbx.ForeColor = Color.Black;
                    tbx.Text = "";
                    tbx.TextAlign = HorizontalAlignment.Right;
                }

            }

    viernes, 6 de abril de 2018 21:06

Respuestas

  • Buenas tardes.

    Creo que ya dí con el problema, lo que pasa es que cuando se hace el HorizontalAlignment del textbox el cursor cambia de posición entonce ejecuta el evento Leave por que se reubica.

    Gracias por sus comentarios.  

    jueves, 12 de abril de 2018 17:21

Todas las respuestas

  • hola 

    el evento click es cuando le das click al control Textbox y es producido por el mouse,  seria parecido a el evento enter

    que es cuando entra el foco bien sea por mouse o teclado.

    el evento leave es cuando se deja el foco del control bien sea por mouse o teclado. 

    entonces creo que definas bien los eventos que quieras y creo que click no es el indicado en TCtaBN

    Ademas estas Heredando un metodo FormatoTbx(textBox tbx...) que cada control ejecutará ese metodo
    • Editado greg_dorian viernes, 6 de abril de 2018 21:48
    viernes, 6 de abril de 2018 21:40
  • greg_ dorian gracias por responder.

    Lo de los eventos si me queda claro como funcionan, mi problema es que a pesar de ser eventos separados y ejecutan métodos diferentes, al darle click al texbox se debería ejecutar únicamente ese evento (Limpiar2), pero pasa que luego de ejecutarse, salta al evento leave y por consiguiente se ejecuta el método del Leave (FormatoTbx), lo que no comprendo es por que pasa eso.

    martes, 10 de abril de 2018 21:15
  • hola

    No probaste cambiando el Leave por LostFocus

    saludos

    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 11 de abril de 2018 15:32
  • Saludos

    Acabo de intentar con el LostFocus y hace lo mismo, cambié el Click por Enter y luego por GotFocus y nada, sigue entrando al evento donde se ejecuta FormatoTbx ya sea en Leave o LostFocus

    jueves, 12 de abril de 2018 16:15
  • Buenas tardes.

    Creo que ya dí con el problema, lo que pasa es que cuando se hace el HorizontalAlignment del textbox el cursor cambia de posición entonce ejecuta el evento Leave por que se reubica.

    Gracias por sus comentarios.  

    jueves, 12 de abril de 2018 17:21