none
Comparar TEXT de un TextBox multilinea RRS feed

  • Pregunta

  • Buena tarde

    Tengo un textbox multilínea en le cual intento validar que se llene con un valor de lo contrario no avanza al siguiente textbox; pero no logro conseguirlo.

           
            private void TxbPrvDes_KeyPress(object sender, KeyPressEventArgs e)
            {
                if (e.KeyChar == 27) this.Close();
                if (e.KeyChar == 13 && this.TxbPrvDes.Text != "")
                {
                      this.TxbPrvCon.Focus();
                }
            }

    Esto si me funciona cuando el textbox no es multilínea; pero en este caso no funciona ya que lo tengo como multilínea.  Gracias por la ayuda.


    domingo, 25 de octubre de 2020 22:16

Todas las respuestas

  • Hola Claudia

    Creo que adiviné cual es el problema. Vos le pedis que si pulsas Enter y el Text no está vacío que ponga el foco en el otro TextBox. No estoy seguro, pero podría ser que la propiedad AcceptsReturn del TextBox valga true, con lo que si pulsas Enter te lo toma como un salto de linea. Fijate poniendo AcceptsReturn a false.

    Saludos

    Pablo

    domingo, 25 de octubre de 2020 22:50
  • Hola Claudia_CA,

    ¿Alguna novedad sobre tu pregunta? ¿Han sido útiles las respuestas proporcionadas? Por favor no olvides marcar una respuesta si resolviste tu consulta (debajo de cada post hay una opción que dice "Marcar como respuesta").

     

    Saludos cordiales

    Gabriel Castro

     ____________________________ 

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

    lunes, 26 de octubre de 2020 13:12
    Moderador
  • lo correcto es utilizar el evento keydown y no olvides cancelar el enter presionado

    private void TxbPrvDes_KeyDown(object sender, KeyEventArgs e)
            {
                if (e.KeyCode == Keys.Escape) this.Close();
                if (e.KeyCode == Keys.Enter && this.TxbPrvDes.Text != "")
                {
                    this.TxbPrvCon.Focus();
                    e.SuppressKeyPress = true;
                }
            }

    lunes, 26 de octubre de 2020 17:40
  • Hola Tigre Pablito gracias por tu apoyo. Hice lo que mencionas pero sigue el detalle.
    jueves, 5 de noviembre de 2020 0:38
  • Gracias Anibal; pero haciendo lo que sugieres hace lo mismo: al darle enter pasa al campo siguiente aun cuando no se haya escrito algo.
    jueves, 5 de noviembre de 2020 0:43
  • Hola 

    Desafortunadamente no he logrado solventar el problema

    jueves, 5 de noviembre de 2020 0:44
  • Hola Claudia

    Con el siguiente código, si pulsas Enter y no hay nada escrito, no hace nada, y si hay algo escrito (Text != ""), pone el foco en el siguiente TextBox. Para esto, el primer TextBox no recibe la tecla Enter, si no, no se podría hacer. 

            private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
            {
                if (e.KeyChar == 27) 
                    this.Close();
                if (e.KeyChar == 13)
                {
                    e.Handled = true;
                    if (this.textBox1.Text != "")
                    {
                        this.textBox2.Focus();
                    }
                }
            }
    

    Saludos

    Pablo


    jueves, 5 de noviembre de 2020 1:05
  • Muchas gracias Pablo.

    Hoy mismo lo pruebo te aviso el resultado.

    miércoles, 2 de diciembre de 2020 17:02
  • Hola Pablo, nuevamente gracias por tu apoyo. El resultado fue el mismo, solo lo hace cuando el TextBox NO es multilínea.

     
    jueves, 10 de diciembre de 2020 18:25
  • Hola Claudia

    Yo ya lo había probado antes, y lo volví a ver ahora, y funciona perfectamente, quizás si pones la propiedad AcceptsReturn del 1er TextBox a true, que recién lo vi, quizás es eso. Si no es eso, por favor pasa el código tuyo a ver si puedo detectar el problema. Ah, y mira que en mi ejemplo puse textBox1 y textBox2, verifica que se correspondan con los nombres que vos les pusiste a los TextBox.

    jueves, 10 de diciembre de 2020 20:40
  • COMO HAN BORRADO MI ULTIMA RESPUESTA, LA VUELVO A ESCRIBIR. MUCHAS GRACIAS A TODOS LOS QUE DESARROLLAN Y MANTIENEN EL SITIO WEB. Y ENGAÑAN, PORQUE EN LA VISTA DE RESPUESTAS, FIGURO COMO EL ULTIMO QUE RESPONDIO, PERO AQUI MI ULTIMA RESPUESTA NO SE VE. SALUDO MUY ATENTAMENTE.

    Hola Claudia

    Ya lo había probado cuando te lo pasé el código, y funcionaba tal cual vos querías. Ahora lo probé otra vez y sigue funcionando bien. Quizás tendrías que asignar true a AcceptsReturn del 1er TextBox, es lo único que se me ocurre que podría ser lo que hace que no funcione. Si no es eso, por favor pasame todo el código a ver si puedo encontrar el problema. También, mira que yo los llamé textBox1 y textBox2, fijate que coincidan con los nombres que vos les pusiste. 

    Saludos

    viernes, 11 de diciembre de 2020 17:49
  • Hola Pablo muchas gracias por tu apoyo. Tuve un inconveniente y por lo mismo estoy retomando mi proyecto en estas fechas. Voy a probar lo que mencionas y si no funciona te comparto el código. Gracias
    jueves, 18 de febrero de 2021 5:04