2016-09-17 5 views
0

長時間プログラムを終了しました。ちょうどVB 2008を学び、物事は1999年以来変わりました。コントロール名を渡す? Visual Studio C#WM5

私は3つのDatagridを持っています。 3つの行のクリックをすべて1つの領域にグループ化し、CurrentRowIndexを取得したいと思います。

コントロール名を渡して、3グリッドのCurrentRowIndexを取得できますか?

私は、これは動作しません知っている:

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

    row = control.Name.CurrentRowIndex; 
} 

か、それぞれ1を入力しなければならないのですか? これは機能しますが...できるだけ簡単にします。

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

私はあなたが「一つの領域にすべての3行をクリックするグループとCurrentRowIndexを得る」

の意味を正確にわからない

3 DataGridViewsがある場合は、おそらく3別の行があるでしょうインデックス。これはあなたがすべてのDatagridViewsのために選択された行を参照することができますすべての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); 
} 

で同じ「クリック」イベントを使用して

。 たぶん私は質問を理解していないのです....

+0

の線に沿って何か: 'code' foreachの(this.Controlsでコントロール制御) { を(コントロールがテキストボックスである)場合 { のTextBoxテキストボックスに= (TextBoxとしてのコントロール)。 textBox.Text = ""; } } 'code' テキストボックスではなく、... row = control.CurrentRowIndex; – TheOuterSide

関連する問題