none
Menu dinamico RRS feed

  • Pergunta

  • dae galera, blz?

    Então, estou com o seguinte problema:
    Tenho um menu jah predefinido, os "sub-menus" desse menu são criados dinamicamente, aqui esá o codigo q uso pra cria-los.

    string nome = bancoDados_DataSet1.Tables["EQUIPAMENTO"].Rows[i][2].ToString();
                    ToolStripMenuItem item = new ToolStripMenuItem();
    
                    item.Text = nome;
                    item.Name = nome;
                    Incubadora.DropDownItems.Add(item);
    
                    item.Click += new EventHandler(Item_Click);
    até ae td bem!

    o problema está no meu evento click. Quando eu clico em um sub-menu ele vai no meu banco de dados e busca o tipo de equipamento que é, ae ele vai passar esse tipo como parametro para meu novo form que abrirá.
    Gostaria de alguma sugestão no meu código dentro do evento click.

    Desculpe se não conseguir ser claro o suficiente.

    Tiago.
    terça-feira, 24 de novembro de 2009 13:15

Respostas

  • Não entendi...

    O que não funciona no seu evento Item_Click?

    Pra você passar um valor para a classe do Form2, é só criar uma variável pública nele;

    //assumindo q seu form2 já está feito;
    public partial class form2
    {
         public string TipoEquipamento;
    }

    aí no Item_Click;

    toolstripmenuitem clickedItem=(toolstripmenuitem) sender;
    form2 frm2=new form2();
    //sender.text  = ao nome do equipamento
    //string s é o retorno da sua select
    frm2.NomeEquipamento=s;
    frm2.show();

    Att ...
    terça-feira, 24 de novembro de 2009 14:14
  • Tiago,

    Quando vc fez  item.Click += new EventHandler(Item_Click); criou um novo Método.

    Nesse método criado faça isso:

    public void Item_Click(object sender, EventArgs e)
    {
        string nomeForm = "NAMESPACE.NomeDoFORM";
        Type t = Type.GetType(nomeForm);
        Form f = (Form)Activator.CreateInstance(t, "abc");
        f.Show();
    }
    
    
    No FORM que será aberto o construtor está dessa maneira:
    
    public Form2(string t)
    {
        MessageBox.Show(t.ToString());
    }

    Henrique Tambalo
    terça-feira, 24 de novembro de 2009 22:14

Todas as Respostas

  • Não entendi...

    O que não funciona no seu evento Item_Click?

    Pra você passar um valor para a classe do Form2, é só criar uma variável pública nele;

    //assumindo q seu form2 já está feito;
    public partial class form2
    {
         public string TipoEquipamento;
    }

    aí no Item_Click;

    toolstripmenuitem clickedItem=(toolstripmenuitem) sender;
    form2 frm2=new form2();
    //sender.text  = ao nome do equipamento
    //string s é o retorno da sua select
    frm2.NomeEquipamento=s;
    frm2.show();

    Att ...
    terça-feira, 24 de novembro de 2009 14:14
  • Tiago,

    Quando vc fez  item.Click += new EventHandler(Item_Click); criou um novo Método.

    Nesse método criado faça isso:

    public void Item_Click(object sender, EventArgs e)
    {
        string nomeForm = "NAMESPACE.NomeDoFORM";
        Type t = Type.GetType(nomeForm);
        Form f = (Form)Activator.CreateInstance(t, "abc");
        f.Show();
    }
    
    
    No FORM que será aberto o construtor está dessa maneira:
    
    public Form2(string t)
    {
        MessageBox.Show(t.ToString());
    }

    Henrique Tambalo
    terça-feira, 24 de novembro de 2009 22:14