1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

windows forms c# 2005 (passar valor de um form para outro form)

Discussão em 'Programação' iniciada por alfinete, 24 de Janeiro de 2009. (Respostas: 2; Visualizações: 5007)

  1. alfinete

    alfinete Power Member

    tenho 2 forms (form1 e form 2) , em que o form1 tem um botão para chamar o form 2

    codigo do form 1

    Código:
    
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    
    namespace testeling
    {
        public partial class Form1 : Form
        {
          [COLOR=Yellow][B] public int ling = 0;[/B][/COLOR]
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Btnptg_Click(object sender, EventArgs e)
            {
                ling = 0;
               
                ptg();
            }
    
            private void btning_Click(object sender, EventArgs e)
            {
                ling = 1;
               
                img();
            }
    
            private void ptg()
            {
                Btnptg.Text = resources.form1ptg.btnptg.ToString();
                btning.Text = resources.form1ptg.BtnIng.ToString();
                btnentry.Text = resources.form1ptg.btnentry.ToString();
                Btnptg.Enabled = false;
                btning.Enabled = true;  
            }
    
            private void img()
            {
                Btnptg.Text = resources.form1ing.btnptg.ToString();
                btning.Text = resources.form1ing.BtnIng.ToString();
                btnentry.Text = resources.form1ing.btnentry.ToString();
                Btnptg.Enabled = true;
                btning.Enabled = false;  
            }
    
            private void btnentry_Click(object sender, EventArgs e)
            {
                Form2 f2 =new Form2();
                
                f2.Show(); 
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                switch (ling)
                { 
                    case 0:
                        ptg();
                        break;
                    case 1:
                        img();
                        break;
                    default:
                        break;
                }
            }
    
            //guarda o nome do grupo de recruramento 
          [B][COLOR=Yellow]  public int Limg
            {
                get { return ling; }
                set { ling = value; }
            }[/COLOR][/B]
    
        }
    }
    
    
    codigo do form 2

    Código:
    
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    
    namespace testeling
    {
        public partial class Form2 : Form
        {
          
            public Form2()
            {
                InitializeComponent();
                
            }
    
            private void btnvoltar_Click(object sender, EventArgs e)
            {
               
            }
    
            private void ptg()
            {
                btnvoltar.Text = resources.form2ptg.btnvoltar.ToString();
               
              
            }
    
            private void img()
            {
                btnvoltar.Text = resources.form2ing.btnvoltar.ToString();
              
            }
    
            private void Form2_Load(object sender, EventArgs e)
            {
    
                Form1 fr1 = (Form1)this.Parent;
              [COLOR=Yellow][B]  string language = fr1.Limg.ToString()  ; [/B][/COLOR]
                switch (fr1.ling )
                { 
                case 0:
                    ptg();
                    break;
                case 1:
                    img();
                    break;
                default:
                        break;
                }
            }
        }
    }
    
    fo tipo o que eu quero é passar a var ling ou Ling publicas do form 1 para o form2

    string language = fr1.Limg.ToString() ;- aqui diz not referene object

    Form1 fr1 = new Form1();
    int language = fr1.Limg ;

    passa sempre o ling a o mesmo que ele nam esteja a 0

    gstava de um help

     
  2. Tens duas opções.

    Ou declaras uma variável public static ( não é de todo aconselhável ) ou optas por passar como argumento a variável quando instâncias a nova form.
     
  3. jpaulino

    jpaulino Power Member

    Aqui está um exemplo simples (e dos métodos mais usados) de como o fazer:

    Form2
    Código:
    // Declaras uma propriedade que irá receber o valor
    public string myValue { get; set; }
     
    private void Form2_Load(object sender, EventArgs e)
    {
     
    // Usa o valor que está na propriedade
    this.Text = myValue.ToString();
     
    }
    

    Form1
    Código:
    Form2 frm = new Form2();
    frm.myValue = "Test";
    frm.Show();
    

    Para declarares variáveis como publicas, podes utilizar uma classe diferente e depois declaras como:

    Código:
     
    public static string abc = string.Empty;
    
    Para a utilizares utilizas fazes:

    Código:
     
    Class1.abc = "abc";
    
     
    Última edição: 25 de Janeiro de 2009

Partilhar esta Página