none
chamar uma variável de um form dentro de outro form RRS feed

  • Pergunta

  • Boa noite,

    Estou atribuindo para a variável c2.saldo o valor 1, apos isto estou escondendo o form atual (form2) e exibindo um outro form

    depois no outro form estou chamando a variável, porém o resultado que é mostrado é 0 ao invés do valor 1 que atribui.

     public Conta c2 = new Conta();
            private void button1_Click(object sender, EventArgs e)
            {
                c2.saldo = 1;
                c2.att();
                Form1 teste = new Form1();
    
                this.Hide();
                teste.Show();
                
            }
     

    Codigo do form1

    private void button2_Click(object sender, EventArgs e) { Form2 teste = new Form2(); MessageBox.Show(" var form2" + teste.c2.saldo); }



    domingo, 3 de julho de 2016 03:38

Respostas

  • Palomapsj,

    Do jeito que esta fazendo, não funciona pq você esta abrindo uma nova instancia com um novo objeto, tem muitas formas de fazer isso, umas deles é deixar o sua propriedade saldo como static, para que os valores não se  percam quando o objeto do form1 for criado.

    Classe Conta

      public class Conta
        {
            public static int Saldo { get; set; }
    
        }


    no form 2 

            private void button1_Click(object sender, EventArgs e)
            {
                Conta.Saldo = 1;
                Conta.att();
    
                Form1 teste = new Form1();
                this.Hide();
                teste.Show();
            }

    no form 1

            private void button2_Click(object sender, EventArgs e)
            {           
                MessageBox.Show(" var form2" + Conta.Saldo);
            }



    Diego Almeida Barreto
    System Analyst / Software Developer

    • Marcado como Resposta Thales F Quintas segunda-feira, 4 de julho de 2016 14:17
    segunda-feira, 4 de julho de 2016 13:45

Todas as Respostas

  • apenas crie uma variavel publica no form que deseja receber, no caso no form1
    e apos abrir o form no click do botao, atribua a variavel normalmente;

    public Conta c2 = new Conta(); private void button1_Click(object sender, EventArgs e) { c2.saldo = 1; c2.att(); Form1 teste = new Form1();
    teste.minha_variavel_publica = c2.saldo;
    this.Hide(); teste.Show(); }

     

    Codigo do form1

    public double minha_variavel_publica;

    domingo, 3 de julho de 2016 06:31
  • Palomapsj,

    Do jeito que esta fazendo, não funciona pq você esta abrindo uma nova instancia com um novo objeto, tem muitas formas de fazer isso, umas deles é deixar o sua propriedade saldo como static, para que os valores não se  percam quando o objeto do form1 for criado.

    Classe Conta

      public class Conta
        {
            public static int Saldo { get; set; }
    
        }


    no form 2 

            private void button1_Click(object sender, EventArgs e)
            {
                Conta.Saldo = 1;
                Conta.att();
    
                Form1 teste = new Form1();
                this.Hide();
                teste.Show();
            }

    no form 1

            private void button2_Click(object sender, EventArgs e)
            {           
                MessageBox.Show(" var form2" + Conta.Saldo);
            }



    Diego Almeida Barreto
    System Analyst / Software Developer

    • Marcado como Resposta Thales F Quintas segunda-feira, 4 de julho de 2016 14:17
    segunda-feira, 4 de julho de 2016 13:45