Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

tupinikin

Passar variavel para outro form, gerado dinamicamente C#

Recommended Posts

Tenho uma dúvida em relação de passar o valor de um botão para outro form.

tenho o seguinte código

private void dataGridView1_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
    {


        string cod_evento = dataGridView1.CurrentRow.Cells[1].Value.ToString();


        codigo_evento = cod_evento;
        string sql = " select * from eventos where cod_evento = " + cod_evento + " ";

        flowLayoutPanel1.Refresh();
        MySqlDataAdapter da = new MySqlDataAdapter(sql, conn);

        DataTable dt = new DataTable();
        da.Fill(dt);
        dataGridView1.Refresh();
        // MessageBox.Show(dt.Rows.Count.ToString());
        if (dt.Rows.Count == 0)
        {
            MessageBox.Show("erro", "erro", MessageBoxButtons.OK);


        }
        else
        {
            int y = 20;
            int incremento = 30;
            int contador = 1;

            for (int i = 0; i < dt.Rows.Count; i++)
            {


               Button b = new Button();

                b.Name = i.ToString();





                b.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
                b.Font = new Font("Verdana", 15);
                string sexo = dt.Rows[i]["sexo"].ToString();

                string tipo = string.Concat(dt.Rows[i]["nome_area"].ToString()," - ",sexo);


                b.Text = string.Concat(sexo.ToString(),  tipo.ToString());
                b.Click += new EventHandler(this.b_Click);


                // vamos carregar para o próximo form




                b.Size = new System.Drawing.Size(400, 60);





                flowLayoutPanel1.Controls.Add(b);
                flowLayoutPanel1.AutoScroll = true;
                y = y + incremento;
                contador++;
                lblCarregando.Text = "";

            }
        }

    }


      void b_Click(object sender, EventArgs e)
    {


        Imprimir imprimir = new Imprimir();


        imprimir.sexo = sexo;
        imprimir.tipo = tipo;

        imprimir.cod_evento = codigo_evento;

        // vamos carregar o form com os tipos e quantidades



        imprimir.Show();
        lblCarregando.Text = "";
    }

Mas acontece que no loop, ele mostra certinho os valores, mas ao clicar, ele envia para o imprimir o último resultado do loop;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha, você tem que explicar um pouco melhor seu código, colar ele aqui não vai adiantar muita coisa se não soubermos o que você quer...

 

Evite colar o código todo, poste apenas as partes relevantes, diga exatamente sua dúvida por favor

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que me expressei errado.

 

Tenho um data grid que ao clicar nele, atualiza um flowlayoutpanel

com botoes oriundos de uma consulta no banco

trás corretamente

mas ao clicar em algum botão e abrir um novo form, ele envia sempre o valor da ultima consulta

e não os valores correspondentes ao botão

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara é meio estranho, porque os eventos são unicos e todos os botões acessam o mesmo evento, neste evento você usa uma global... Ou seja, o valor é o mesmo pra toda a aplicação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.