如何识别单击了哪个数据网格视图

本文关键字:数据 数据网 视图 网格 单击 何识别 识别 | 更新日期: 2023-09-27 18:34:19

我有一个Windows表单应用程序,上面有6个数据网格视图。我想知道用户是否单击了其中一个,单击了哪个数据网格视图。我为每个数据网格视图提供了单元格单击事件。

我想在这里使用它:

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

dgvArray 是一个 6 个DataGridViews的数组。

如何识别单击了哪个数据网格视图

发送方作为第一个参数传递给单击事件处理程序。将其强制转换为DataGridView,您将拥有单击的控件。

应将所有 6 个事件指向单个事件处理程序,然后该处理程序使用 DataGridView 的 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);
}