【发布时间】:2012-11-01 17:31:40
【问题描述】:
我在 DataGridViewComboBoxCell 中有一个项目列表;我想在用户单击一个值后立即做某事。
事件是什么,或者我该怎么做?
当我们离开单元格时调用CellValueChanged...
【问题讨论】:
标签: winforms datagridview
我在 DataGridViewComboBoxCell 中有一个项目列表;我想在用户单击一个值后立即做某事。
事件是什么,或者我该怎么做?
当我们离开单元格时调用CellValueChanged...
【问题讨论】:
标签: winforms datagridview
您可以处理组合框的 selectededindexchanged。
private void dataGridView1_EditingControlShowing(object sender,
DataGridViewEditingControlShowingEventArgs e)
{
ComboBox cb = e.Control as ComboBox;
if (cb != null)
{
// first remove event handler to keep from attaching multiple:
cb.SelectedIndexChanged -= new
EventHandler(cb_SelectedIndexChanged);
// now attach the event handler
cb.SelectedIndexChanged += new
EventHandler(cb_SelectedIndexChanged);
}
}
void cb_SelectedIndexChanged(object sender, EventArgs e)
{
MessageBox.Show("Selected index changed");
}
【讨论】:
另一种可能的方法是:
private void dataGridView1_EditingControlShowing(object sender,
DataGridViewEditingControlShowingEventArgs e)
{
ComboBox cb = e.Control as ComboBox;
if (cb == null)
return;
dataGridView1.EditingControlShowing -= dataGridView1_EditingControlShowing;
cb.SelectedIndexChanged += cb_SelectedIndexChanged;
}
void cb_SelectedIndexChanged(object sender, EventArgs e)
{
MessageBox.Show("Selected index changed");
}
所有事情都只做一次。
【讨论】: