我有一个带有6个datagridviews的Windows窗体应用程序。我想知道用户是否点击了其中一个,点击了哪个datagridview。我为每个datagridviews都有单击的事件。
我想在这里使用它:
dgvArray[i].Rows[j].Cells[4].Value = GlobalData[j + i * 8 + interface * 64];
dgvArray
是一个包含6 DataGridViews
的数组。
答案 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);
}