none
propiedad text para textbox no visible... RRS feed

  • Pregunta

  • Tengo un textbox con la propiedad visible a false, aun asi por codigo me gustaria acceder a su propiedad text para saber su contenido pero me devuelve vacio por el contrario cuando esta visible a true, devuelve normal... ¿Que hago mal? ¿Que tiene que ver que un control se vea a que no se pueda acceder su valor desde codigo¿
    miércoles, 4 de mayo de 2011 16:53

Respuestas

  • Bueno ya he investigado al respecto y parece ser que cuando un textbox tiene un binding asociado y el control esta con visible a false, ya no se puede acceder a su text pq da empty. Por el contrario si estableces visible a true y desde el load del form lo pones a false si se puede acceder a su contenido. Aun así y mirando este tema, he observado que recomendais no utilizar para asignar bindings el asistente y hacerlo de forma manual... como indican en este ejemplo: http://mvp-access.es/softjaen/bases/adonet/sjadonet08.htm . Mi pregunta ahora es la siguiente en un form donde tengo 100 o 150 campos no es esto algo irracional? Teclear y teclear como programadores del cromañon... no lo entiendo.

    • Marcado como respuesta AH_Jaketon jueves, 5 de mayo de 2011 17:01
    jueves, 5 de mayo de 2011 9:22

Todas las respuestas

  • Hola AH_Jaketon, pero ¿para que un TextBox Invisible CON TEXTO? . . . . en finn tu tendras tus razones :D.

    Hice la prueba, y no pasa en el siguiente escenario:

    private void button1_Click(object sender, EventArgs e)
    {
      textBox1.Text = "HOLA MUNDO";
      string variable = textBox1.Text;

    Pero claro puede variar, en que escenario se te esta presentando el problema?

    Saludos.


    Nicolás Herrera
    Bogotá - Colombia
    BLOG - Core Group BogotaDotNet
    "Daría todo lo que sé, por la mitad de lo que ignoro." Rene Descartes
    miércoles, 4 de mayo de 2011 18:18
  • pero tiene un contenido asignado ese TextBox aunque este en deshabilitado ?

    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    miércoles, 4 de mayo de 2011 18:47
  • Bueno ya he investigado al respecto y parece ser que cuando un textbox tiene un binding asociado y el control esta con visible a false, ya no se puede acceder a su text pq da empty. Por el contrario si estableces visible a true y desde el load del form lo pones a false si se puede acceder a su contenido. Aun así y mirando este tema, he observado que recomendais no utilizar para asignar bindings el asistente y hacerlo de forma manual... como indican en este ejemplo: http://mvp-access.es/softjaen/bases/adonet/sjadonet08.htm . Mi pregunta ahora es la siguiente en un form donde tengo 100 o 150 campos no es esto algo irracional? Teclear y teclear como programadores del cromañon... no lo entiendo.

    • Marcado como respuesta AH_Jaketon jueves, 5 de mayo de 2011 17:01
    jueves, 5 de mayo de 2011 9:22
  • Hola, lo que sucede es que en ocasiones como esta, es donde requieres de objetos con la infomacion de tus entidadees. . . para que no se presenten casos en los que debas ocultar un control con informacion y a su vez desees acceder a la informacion contenida en el.

    Puedes, si lo deseas quedarte con el asistente, perooo te limitas a NO PODER trabajar de forma "libre" con tu entidades y objetos.

    Saludos.

     


    Nicolás Herrera
    Bogotá - Colombia
    BLOG - Core Group BogotaDotNet
    "Daría todo lo que sé, por la mitad de lo que ignoro." Rene Descartes
    jueves, 5 de mayo de 2011 13:37
  • En un textbox aun poniendo visible = true antes del binding y despues del binding poniendo .visible=false sigue sin funcionar.

    Una vez esta invisible el valor del texbox(la propiedad .text) no se actualiza a su binding asociado.


    lunes, 1 de agosto de 2011 6:56
  • prodrias declarar una variable string y al momendo de cargar pasarle el valor que tiene el texbox, una vez en la variable no sacas el valor del texbox sino de la variable
    Luis Y. Ramirez Software Developer "Recuerda marcar las repuestas como VALIDAS si te han ayudado"
    martes, 9 de agosto de 2011 22:18
  • Alternativa valida, pero ya podria advertirse en la documentacion del texbox que si pones .visible=false, aunque asocies un binding es como si tuvieses un control que no sirve de nada. Al final mi solucion ha sido usar los campos directamente (de mi bindingsource) donde antes habia textbox invisible.

    Cuando uno crea programas, puede crear textbox invisibles para guardar cosas o para enlazar con valores de una base de datos para recoger dichos valores y combinarlos en otro textbox visible. Es su responsabilidad el que estos textbox sirvan para algo o no. NO tiene logica el que , parece ser por ahorrar, si tienes un textbox invisible, no se actualize al binding asociado. Los controles y clases no tendrian que "ahorrar" mas de lo necesario, sino en lo mas logico, o advertirlo claramente en la documentacion. Si es logico que si un textbox es invisible ya no se repinte , pero podrias volverte loco buscando el "error" si esto se aplica a otra cosa y "por ahorrar" dicho control o clase no se comporta como uno espera.

     

     


    miércoles, 10 de agosto de 2011 6:51
  • hola vb6 upgrader... una critica constructiva, para que crear un textbox que solo usaras para asignarle un valor y luego pasarlo a otro textbox o usarlo en operaciones, seria mas eficiente usarlo directamente de tu fuente de datos(como mensionas) o si es un valor que ya tienes preedeterminado en variables no crees? quisa es verdad que un control no cause tanto daño pero si nos ponemos de ejemplo ese esenario que comentas de 100 campos ahi es donde entra el concepto de "Ahorro"

    pienso que este ahorro no se presenta en usar pocos o muchos controles sino en el proceso que deverias seguir para asignarle un valor a otro textbox... digamos no es lo mismo

    textbox1.text = valor1
    textbox2.text = valor2
    textbox3.text = cint(textbox1.text) + cint(textbox2.text)
    

     

    que hacer esto

    textbox1 = valor1 + valor2
    

    o en todo caso si el usuario no necesita ver valor1 y valor2 si no solo su resultado... que no seria mejor sumarlo desde el query y traer un recordset mas pequeño?
     

    es a mi punto de vista

    saludos =)

    miércoles, 10 de agosto de 2011 13:27