none
Problema al acceder a la información de otro form RRS feed

  • Pregunta

  • Hola como están?
    Quisiera que me digan si puedo copiar el contenido que tengo de un textBox en un form hacia el otro pero sin cerrarlo.

    Lo que intento es:

                Datos sd = new Datos();
                string valor =sd.txtBox.Text;

    Pero me devuelve el campo en blanco. Como lo puedo corregir

    Gracias por su atención.

    Francisxt

    jueves, 28 de mayo de 2015 19:23

Respuestas

  • Hola, te dejo un ejemplo simple:

    Pon esto en el form 1:

    namespace WindowsFormsApplication4
    {
        public partial class Form1 : Form
        {
            public static Object objForm;
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                objForm = textBox1;
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                Form2 objform = new Form2();
                objform.Show();
    
            }
        }
    }

    y esto en el form2:

    namespace WindowsFormsApplication4
    {
        public partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                TextBox objtext = new TextBox();
                objtext = (TextBox)Form1.objForm;
                objtext.Text = textBox1.Text;
            }
        }
    }

    Este es el diseño:

    Comwn

    Comentanos tu avance.

    Saludos.


    JhonTL

    • Marcado como respuesta Francis sxt viernes, 29 de mayo de 2015 1:59
    jueves, 28 de mayo de 2015 20:23

Todas las respuestas

  • Hola Francis sxt deberías mirar el siguiente vídeo, explica claramente lo que quieres realizar:

    pasar datos entre formularios con delegados y eventos c#

    Espero haberte ayudado.

    jueves, 28 de mayo de 2015 19:47
  • hola

    >>que me digan si puedo copiar el contenido que tengo de un textBox en un form hacia el otro pero sin cerrarlo

    pero este otro form es padre o hijo de que tiene el textbox ?

    se supone que no debes usar el new nuevamente porque estas creando una nueva instancia

    debes tomar el form existente

    podrias recuperar la instancia del form usando esta tecnica

    [WinForms] Verificar si el form esta abierto

    y al hacerlo acceder a su contenido

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 28 de mayo de 2015 19:52
  • Hola, te dejo un ejemplo simple:

    Pon esto en el form 1:

    namespace WindowsFormsApplication4
    {
        public partial class Form1 : Form
        {
            public static Object objForm;
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                objForm = textBox1;
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                Form2 objform = new Form2();
                objform.Show();
    
            }
        }
    }

    y esto en el form2:

    namespace WindowsFormsApplication4
    {
        public partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                TextBox objtext = new TextBox();
                objtext = (TextBox)Form1.objForm;
                objtext.Text = textBox1.Text;
            }
        }
    }

    Este es el diseño:

    Comwn

    Comentanos tu avance.

    Saludos.


    JhonTL

    • Marcado como respuesta Francis sxt viernes, 29 de mayo de 2015 1:59
    jueves, 28 de mayo de 2015 20:23
  • sino lo otro es pasar el dato por parametro

    [WinForms] – Pasaje de información formulario hijo

    en el articulo veras como pasar el dato del textbox al otro form

    pero puntualmente pasas datos simples, NO accedes al form padre para tomar el dato

    Nota: NUNCA uses nada static para acceder a los datos del otro form

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    jueves, 28 de mayo de 2015 21:15
  • hola

    >>Del Form hijo quiero tomar el valor de un textBox del Form padre para usarlo en este.

    pero porque no le pasas el valor directamente por medio del constructor, digo no hace falta acceder al control concreto para tomar el dato

    analiza el articulo que sugiero y veras que puedes hacer

    public class Formhijo : Form {
    
       private string _dato;
    
       public Formhijo(string dato){
    
          _dato = dato;
    
       }
    
    }

    y desde el form padre harias

    public void button1_Click(..){
    
        Formhijo frm = new Formhijo(txtBox.Text);
    
        frm.Show();
    
    }

    asi pasas la informacion sin necesidad de acceder al control desde el form hijo

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 28 de mayo de 2015 22:31