none
Enviar Argumentos depois do Form iniciado. RRS feed

  • Pergunta

  • Boas, podemos enviar argumentos depois do Form ter iniciado?

    Tipo, normalmente é assim:

    Form2 janela2 = new Form2(x,y);

    e depois é isto

    janela2.ShowDialog();

    Mas eu só queria enviar os argumentos quando abria a janela e não quando a criava. Como faço isso caso seja possível?

    Obrigado.

    terça-feira, 20 de maio de 2014 15:29

Respostas

  • Boa tarde,

    Você criar uma propriedade no seu Form2 e setar o valor depois de instanciá-la no Form1, tipo isso:

    /*Form1*/
    Form2 f = new Form2();
    f.Valor1 = 1;
    f.Valor2 = "Valor";
    f.ShowDialog();
    
    /*Form2*/
    
    public int Valor1 { get; set; }
    public string Valor2 { get; set; }
            
    Espero ter ajudado.

    • Marcado como Resposta Diogo_André quarta-feira, 21 de maio de 2014 09:25
    terça-feira, 20 de maio de 2014 17:13

Todas as Respostas

  • Amigo, você pode setar suas propriedades no evento Form_Load. 

    Exemplo:

    Form1

     Form2 form2 = new Form2();
    
                form2.ShowDialog(); 

    Form 2:

          
          
      private void Form2_Load(object sender, EventArgs e)
            {
    // MessageBox.Show("Foi"); 
            }

    terça-feira, 20 de maio de 2014 15:53
  • Dá para fazer tipo esto? 

    int x=1;
    janela2.ShowDialog(x);


    terça-feira, 20 de maio de 2014 16:03
  • Dá para fazer tipo esto? 

    int x=1;
    janela2.ShowDialog(x);


    Sim, você pode criar seu componente para formulário que estende funções padrões de um form. 

    Exemplo:

     public class DialogPersonalizado : Form
        {      
        
            public DialogPersonalizado()
            {
                InitializeComponent();
            }
    
            public DialogResult ShowDialog(string mensagem)
            {
                this.textBox1.Text = mensagem;
                return base.ShowDialog();
            }
        }
          

    Chamar ele:

         DialogPersonalizado dialog = new DialogPersonalizado();
    
                dialog.ShowDialog("TEste");

    Espero que ajude, abraços. 

    terça-feira, 20 de maio de 2014 16:42
  • Mas esta class chama o form2 que é a janela2 que ja tenho criado? ou chama a class? Eu apenas queria era enviar 2 variáveis, para o Form2_Load que me indicou :S

    terça-feira, 20 de maio de 2014 16:59
  • Mas esta class chama o form2 que é a janela2 que ja tenho criado? ou chama a class? Eu apenas queria era enviar 2 variáveis, para o Form2_Load que me indicou :S

    Neste exemplo que te passei o DialogPersonalizado é o Form2. 

    Você cria uma classe chamada DialogPersonalizada e herda ele da classe Form

    Assim:

    DialogPersonalizado : Form
    Dái terá acesso a todos os métodos do Form, inclusive da interface gráfica. 

    terça-feira, 20 de maio de 2014 17:04
  • Boa tarde,

    Você criar uma propriedade no seu Form2 e setar o valor depois de instanciá-la no Form1, tipo isso:

    /*Form1*/
    Form2 f = new Form2();
    f.Valor1 = 1;
    f.Valor2 = "Valor";
    f.ShowDialog();
    
    /*Form2*/
    
    public int Valor1 { get; set; }
    public string Valor2 { get; set; }
            
    Espero ter ajudado.

    • Marcado como Resposta Diogo_André quarta-feira, 21 de maio de 2014 09:25
    terça-feira, 20 de maio de 2014 17:13
  • Boa tarde,

    Você criar uma propriedade no seu Form2 e setar o valor depois de instanciá-la no Form1, tipo isso:

    /*Form1*/
    Form2 f = new Form2();
    f.Valor1 = 1;
    f.Valor2 = "Valor";
    f.ShowDialog();
    
    /*Form2*/
    
    public int Valor1 { get; set; }
    public string Valor2 { get; set; }
            
    Espero ter ajudado.

    Funcionou, Obrigado. :)
    quarta-feira, 21 de maio de 2014 09:26