作者linxiaoxi (葡萄神手)
看板C_Sharp
标题Re: [问题] Datagridview的cellvaluechanged事件
时间Mon Feb 20 16:38:10 2012
※ 引述《sohumi (皮老板)》之铭言:
: 我把datagridview的cell设为combobox
: 我希望在callvalue改变时触发程式
: so使用了callvaluechanged,
: 但是在滑鼠在combobox下拉选单选了不同内容後,
: 并没有触发该事件,反而是选了其它cell後该事件被触发,
: 感觉上好像是刚选好内容时, cellvalue并没有被改变,
: 而是"选好内容後 同时cell lost focus"才会触发该事件.
: 该如何解决?
因为CellValueChanged是在焦点离开才触发的
要实现这个功能很麻烦的
首先在DataGridView的EditingControlShowing事件中假如以下内容
void dataGridView1_EditingControlShowing(object sender, DataGridViewEditing
ControlShowingEventArgs e)
{
try
{
if (e.Control is ComboBox)
{
ComboBox comboBox = e.Control as ComboBox;
if (comboBox != null)
{
comboBox.SelectedIndexChanged -= new EventHandler(co
mboBox_SelectedIndexChanged);
comboBox.SelectedIndexChanged += new EventHandler(co
mboBox_SelectedIndexChanged);
}
}
}
catch (System.Exception ex)
{
}
}
然后在comboBox_SelectedIndexChanged事件中写方法
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 1.202.244.1
1F:推 sohumi:推! 02/24 11:20