C#winform问题 datagridview中combobox选项改变触发事件用哪个方法

补充说明一下。。我把datagridview中的一列改成了combobox类型 有2个选项可供选择 如何在改变选项时触发事件.. 强调是combobox选项一改变就触发事件

这个需要触发的是datagridview的CellContentClick事件,在这个事件里,判断你的datagridview的ColumnIndex是不是所属的combobox的索引,如果是,才进行进一步的操作,例如:
//假定你的
combobox的索引是5,如果不确定,可以通过弹出e.ColumnIndex看看你所点击的combobox的索引是几

private void datagridview_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 5 && e.RowIndex != -1 && !datagridview.Rows[e.RowIndex].IsNewRow)
{
//这个地方写你的事件操作,如:
String id = datagridview.Rows[e.RowIndex].Cells[0].Value.ToString();
......
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-07-20
给你个VB的写法,自己改成C#的。

'下面这个保证一旦ComboBox数据改变会提交给事件
Private Sub DataGridView1_CurrentCellDirtyStateChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataGridView1.CurrentCellDirtyStateChanged
If DataGridView1.IsCurrentCellDirty Then
DataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit)
End If
End Sub

’这里响应事件
Private Sub DataGridView1_CellValueChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellValueChanged
If e.ColumnIndex = 1 AndAlso e.RowIndex > -1 Then
MessageBox.Show(DataGridView1.Rows(e.RowIndex).Cells(1).Value)
End If
End Sub
第2个回答  2010-07-19
TextChanged(),因为你改变的是文本的值,相当于input的 text属性一样
第3个回答  2010-07-19
能不能说具体点 说你的目的是什么
第4个回答  2012-10-15
a.SelectedIndexChanged
b.Controlassed
c.styleChanged
d.imeModeChanged
相似回答