datagridview所有单元格值都传递给label

时间:2014-11-01 06:44:27

标签: c# winforms datagridview

enter image description here

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
               if (e.RowIndex < 0 || e.ColumnIndex < 0)
                    return;

                string id, name, price, desc, quan;
                id = dgvWarp.Rows[e.RowIndex].Cells[0].Value + "";
                name = dgvWarp.Rows[e.RowIndex].Cells[1].Value + "";
                price = dgvWarp.Rows[e.RowIndex].Cells[2].Value + "";
                desc = dgvWarp.Rows[e.RowIndex].Cells[3].Value + "";
               // quan = dgvWarp.Rows[e.RowIndex].Cells[4].Value + "";

                label2.Text = id;
                label3.Text = name;
                label4.Text = price;
                label5.Text = desc;
}

这是我的单元格点击事件处理程序代码。但这个代码没有被触发我需要。实际上我希望datagridview单元格值自动传递给标签。如果我在某些单元格中输入值只传递数据到标签保持空白,如果我输入所有单元格都显示所有标签 enter image description here

只有第1行显示值,如果我输入第1列第2行单元格(test2),则会显示 test2代替test1。 这是我的问题

1 个答案:

答案 0 :(得分:0)

根据行和列索引给出标签名称。即。 lblRow0Col0, lblRow0Col1, lblRow1Col2等。

然后在CellValidating Event

中编写以下代码
private void dataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
    String lblName = String.Format("lblRow{0}Col{1}", e.RowIndex, e.ColumnIndex);
    Label lbl = (TextBox)this.Controls[lblName];
    lbl.Text = e.FormattedValue.ToString();
}