Как связать DataGridViewComboBoxColumn с событием OnChange (C#)
-
26-10-2019 - |
Вопрос
У меня есть стандарт DataGridView
, и моя последняя колонка DataGridViewComboBoxColumn
Анкет Я хотел бы добавить событие, чтобы при изменении выбранного индекса любого из строк в этом столбце запускается событие, и я сохраняю эти данные в DB.
Я борюсь с этим в течение часа или около того и не мог найти какого -либо события, которое это вызвало бы ...
Любая помощь будет оценена !!!
Решение
в EditingControlShowing
событие DataGridView
Прикрепите метод к ComboBox SelectedIndexChanged
мероприятие.
Например:
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
}
Другие советы
Вы можете попробовать что -нибудь на этих линиях, ComboBox - это управление редактированием, поэтому
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);
}
}
Теперь в этом случае вы можете сделать свои вещи, но требуется ли это, чтобы при каждом изменении индекса вы попадете в базу данных?