2016-09-17 7 views
0

Вышла из программы в течение длительного времени. Просто изучая VB 2008, и все изменилось с 1999 года.Передача контрольного имени? Visual Studio C# WM5

У меня есть 3 Datagrids. Я хочу сгруппировать все 3 щелчка в одну область и получить CurrentRowIndex.

Итак, можете ли вы передать контрольное имя, чтобы получить CurrentRowIndex из 3-х сетки?

Я знаю, что это не работает:

private void tblCollectionDataGrid_Click(object sender, EventArgs e) 
{ 
    Control control = (Control)sender; 
    MessageBox.Show(control.Name); 

    row = control.Name.CurrentRowIndex; 
} 

или вы должны ввести каждый одну из них? Это работает, но ... хочет, чтобы это было проще, если это было возможно.

private void tblCollectionDataGrid_Click(object sender, EventArgs e) 
{ 
    Control control = (Control)sender; 
    MessageBox.Show(control.Name); 

    switch (control.Name) 
    { 
     case "tblMemoDataGrid": 
      row = tblMemoDataGrid.CurrentRowIndex; 
      break; 
     case "tblReportDataGrid": 
      row = tblReportDataGrid.CurrentRowIndex; 
      break; 
     case "tblInfoDataGrid": 
      row = tblInfoDataGrid.CurrentRowIndex; 
      break; 
    } 
} 

ответ

0

Я не уверен, что именно вы имеете в виду

«группа все три строки щелкает в одной области и получить CurrentRowIndex»

если есть 3 DataGridViews будет, возможно, 3 РАЗЛИЧНЫХ строка индексов.

используя один и тот же «щелчок» событие для всех 3 DataGridViews

private void dataGridView_Click(object sender, EventArgs e) 
{ 
    int index1 = dataGridView1.CurrentCell.RowIndex; 
    int index2 = dataGridView2.CurrentCell.RowIndex; 
    int index3 = dataGridView3.CurrentCell.RowIndex; 
    MessageBox.Show("i1: " + index1 + " i2: " + index2 + " i3: " + index3); 
} 

это позволит вам увидеть, какие строки выбираются для всех DataGridViews. Может быть, я не понимание вопроса ....

+0

Что-то вдоль линий: 'code' Еогеасп (контроль управления в this.Controls) { если (управление TextBox) { TextBox TextBox = (контроль как TextBox); textBox.Text = ""; } } 'code' вместо текстового поля было бы ... row = control.CurrentRowIndex; – TheOuterSide