如何识别单击哪个datagridview?

时间:2014-12-14 13:52:17

标签: c# datagridview

我有一个带有6个datagridviews的Windows窗体应用程序。我想知道用户是否点击了其中一个,点击了哪个datagridview。我为每个datagridviews都有单击的事件。

我想在这里使用它:

dgvArray[i].Rows[j].Cells[4].Value = GlobalData[j + i * 8 + interface * 64];

dgvArray是一个包含6 DataGridViews的数组。

2 个答案:

答案 0 :(得分:5)

发件人作为第一个参数传递给click事件处理程序。将其投射到DataGridView并获得已点击的控件。

答案 1 :(得分:0)

您应该将所有6个事件指向单个事件处理程序,然后使用DataGridViews的Tag属性来标识事件来自哪个事件。这是一个例子:

dataGridView1.Tag = "DGV1";
dataGridView2.Tag = "DGV2";
dataGridView3.Tag = "DGV3";
dataGridView4.Tag = "DGV4";
dataGridView5.Tag = "DGV5";
dataGridView6.Tag = "DGV6";

private void dataGridView_CellClick(object sender,
    DataGridViewCellEventArgs e)
{
    DataGridView dgv = (DataGridView)sender;

    //Use case 1:
    string dgvTag = (string)dgv.Tag;
    switch(dgvTag)
    {
        case "DGV1": /*Do Something*/ break;
        case "DGV3": /*Do Something*/ break;
        case "DGV3": /*Do Something*/ break;
        case "DGV4": /*Do Something*/ break;
        case "DGV5": /*Do Something*/ break;
        case "DGV6": /*Do Something*/ break;
    }

    //Use case 2:
    DataGridViewImageCell cell = dgv.Rows[e.RowIndex].Cells[e.ColumnIndex];
    MessageBox.Show((string)cell.Value);
}