2014-12-14 2 views
0

У меня есть приложение для окон с 6 datagridviews на нем. Я хочу знать, нажимает ли пользователь на один из них, на который было нажато datagridview. У меня есть события со щелчком мыши для каждого из datagridviews.Как определить, какое имя datagridview было нажато?

Я хочу использовать его здесь:

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

dgvArray представляет собой массив из 6 DataGridViews.

ответ

5

отправитель передается в качестве первого параметра обработчикам событий щелчка. Передайте его DataGridView, и у вас есть элемент управления, который был нажат.

0

Вы должны указать все 6 событий на один обработчик событий, который затем использует свойство Tag для DataGridViews для определения того, из какого события произошел. Вот пример:

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); 
} 
Смежные вопросы