Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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;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
Sexo e tipo são parâmetros ou variáveis globais? Qual é essa classe imprimir?
são variaveis globais
e no imprimir busco assim
public string Sexo { get; set; }
public Tipo { get; set; }
Provavelmente porque os botões compartilham do mesmo evento. Já tentou verificar isso?
a postagem ficou repetida
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.
Era um erro na hora de setar as variaveis.
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