1

標準DataGridViewがあり、最後の列はDataGridViewComboBoxColumn. イベントを追加して、その列のいずれかの行の選択されたインデックスが変更されたときにイベントがトリガーされ、そのデータを db に保存したいと思います。

私はこれに1時間ほど苦労していますが、これをトリガーするイベントを見つけることができませんでした...

どんな助けでも大歓迎です!!!

4

2 に答える 2

7

メソッドをコンボボックスイベントにアタッチEditingControlShowingする場合。DataGridViewSelectedIndexChanged

例えば:

private void DGV_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
  if (DGV.CurrentCell.ColumnIndex == comboColumnIndex && e.Control is ComboBox)
  {
    ComboBox comboBox = e.Control as ComboBox;
    comboBox.SelectedIndexChanged += LastColumnComboSelectionChanged;
  }
}

以下のメソッドでは、好きなことを何でもできます。

private void LastColumnComboSelectionChanged(object sender, EventArgs e)
{
  // Do saving work here
}
于 2011-01-28T10:39:30.543 に答える
2

これらの行で何かを試すことができますコンボボックスは編集コントロールなので、

private void dg_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
  if (dg.CurrentCell.ColumnIndex == [yourcolumnindex])
  {
    ComboBox cmbox = e.Control as ComboBox;
    cmbox.SelectedValueChanged -= new EventHandler(cmbox_SelectedValueChanged);
    cmbox.SelectedValueChanged += new EventHandler(cmbox_SelectedValueChanged);
  }
}

その場合、あなたは自分のことをすることができますが、インデックスを変更するたびにデータベースにアクセスする必要がありますか?

于 2011-01-28T10:35:49.093 に答える