【问题标题】:How to identify which datagridview was clicked?如何识别点击了哪个datagridview?
【发布时间】:2014-12-14 13:52:17
【问题描述】:

我有一个 Windows 窗体应用程序,上面有 6 个数据网格视图。我想知道用户是否点击了其中一个,点击了哪个datagridview。我为每个 datagridviews 设置了单元格点击事件。

我想在这里使用它:

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

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

【问题讨论】:

    标签: c# datagridview


    【解决方案1】:

    sender 作为第一个参数传递给点击事件处理程序。将其转换为DataGridView,您就拥有了被点击的控件。

    【讨论】:

      【解决方案2】:

      您应该将所有 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);
      }
      

      【讨论】:

        猜你喜欢
        • 2017-04-26
        • 1970-01-01
        • 1970-01-01
        • 2021-10-21
        • 2017-07-24
        • 1970-01-01
        • 2012-11-13
        • 1970-01-01
        • 2014-01-05
        相关资源
        最近更新 更多