none
BUSCAR DADOS DO FORM1 E PREENCHER TEXTBOX FORM2 RRS feed

  • Pergunta

  • Boa tarde.

    Em uma plicação tenho dois forms (Form1 e Form2).

    No Form2 tenho um textbox e um "timer", este textbox busca de outro textbox que esta no form1.

    Já tentei vairas maneira mas não consigo que isso aconteça!

    alguem pode me ajudar?

    quinta-feira, 23 de março de 2017 19:39

Respostas

  • Amigo,

    Como solução básica, você pode adicionar no Form2 uma referência para o Form1. No Form1, adicione um método que retorne o conteúdo do textbox. Então, no evento Tick do Timer presente no Form2, preencha o textbox chamando o método implementado no Form1.

    Abaixo, fiz um exemplo básico. Configurei o intervalo do tick para ser acionado a cada 5 segundos. No Form1 existe um botão que abre o Form2: 

     //Código do Form1
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void btnOpenForm_Click(object sender, EventArgs e)
            {
                Form2 objForm2 = new Form2();
                objForm2.objForm1 = this;
                objForm2.Show();
            }
    
            public string GetTxtMsg()
            {
                return this.txtMsg.Text;
            }
        }
    
        //Código do Form2
        public partial class Form2 : Form
        {
            public Form1 objForm1 = null;
            private Timer objTimer = new Timer();
    
            public Form2()
            {
                InitializeComponent();
                this.objTimer.Interval = 5000;
                this.objTimer.Enabled = true;
                this.objTimer.Tick += new EventHandler(objTimer_Tick);
            }
    
            private void objTimer_Tick(object sender, EventArgs e)
            {
                if (this.objForm1 != null)
                {
                    this.txtForm.Text = this.objForm1.GetTxtMsg();
                }
            }
        }

    Espero ter ajudado!

    Hudson.

    quinta-feira, 23 de março de 2017 22:59
  • Bom dia,

    Devido a falta de interação do autor dessa pergunta,

    essa thread está sendo fechada. Caso o problema ainda

    esteja ocorrendo, favor abrir uma nova thread.

    Atenciosamente,


    Robson William Silva

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    • Marcado como Resposta RodineyMachado terça-feira, 28 de março de 2017 21:20
    segunda-feira, 27 de março de 2017 12:55
    Moderador

Todas as Respostas

  • Amigo,

    Como solução básica, você pode adicionar no Form2 uma referência para o Form1. No Form1, adicione um método que retorne o conteúdo do textbox. Então, no evento Tick do Timer presente no Form2, preencha o textbox chamando o método implementado no Form1.

    Abaixo, fiz um exemplo básico. Configurei o intervalo do tick para ser acionado a cada 5 segundos. No Form1 existe um botão que abre o Form2: 

     //Código do Form1
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void btnOpenForm_Click(object sender, EventArgs e)
            {
                Form2 objForm2 = new Form2();
                objForm2.objForm1 = this;
                objForm2.Show();
            }
    
            public string GetTxtMsg()
            {
                return this.txtMsg.Text;
            }
        }
    
        //Código do Form2
        public partial class Form2 : Form
        {
            public Form1 objForm1 = null;
            private Timer objTimer = new Timer();
    
            public Form2()
            {
                InitializeComponent();
                this.objTimer.Interval = 5000;
                this.objTimer.Enabled = true;
                this.objTimer.Tick += new EventHandler(objTimer_Tick);
            }
    
            private void objTimer_Tick(object sender, EventArgs e)
            {
                if (this.objForm1 != null)
                {
                    this.txtForm.Text = this.objForm1.GetTxtMsg();
                }
            }
        }

    Espero ter ajudado!

    Hudson.

    quinta-feira, 23 de março de 2017 22:59
  • Bom dia,

    Devido a falta de interação do autor dessa pergunta,

    essa thread está sendo fechada. Caso o problema ainda

    esteja ocorrendo, favor abrir uma nova thread.

    Atenciosamente,


    Robson William Silva

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    • Marcado como Resposta RodineyMachado terça-feira, 28 de março de 2017 21:20
    segunda-feira, 27 de março de 2017 12:55
    Moderador