日期:2014-05-19  浏览次数:21035 次

当选择下拉列表DataGridViewComboBoxCell怎么得到选择的值
严重注意:是WinFrom程序   请ASP开发的人误入

我在DataGridView上的某列绑定了一个ComboBox控件也就是     DataGridViewComboBoxColumn     可是当我改变了我的输入值的时候,如何知道我的值已经改变了呢,这真是太慢了,一般   如果用ComboBox控件的话直接就取Selected的值就是当前的或,可是DataGridViewComboBoxCell却不是的     希望志同道合的朋友一起研究研究,答案尽量详细,那些叫人换控件,顶两句的人就不要回了

------解决方案--------------------
lz:可以按如下办法做:
/// <summary>
/// 响应单元格控件显示事件
/// </summary>
/// <param name= "sender "> </param>
/// <param name= "e "> </param>
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
//判断相应的列
if (currDgv.CurrentCell.ColumnIndex == 3 && currDgv.CurrentCell.RowIndex != -1)
{
(e.Control as ComboBox).SelectedIndexChanged += new EventHandler(ComboBox_SelectedIndexChanged);
}
}

/// <summary>
/// 组合框事件处理
/// </summary>
/// <param name= "sender "> </param>
/// <param name= "e "> </param>
private void ComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
ComboBox combox=sender as ComboBox;
try
{
//在这里就可以做值是否改变判断
................

//做完处理,须撤销动态事件
combox.SelectedIndexChanged -= new EventHandler(ComboBox_SelectedIndexChanged);
Thread.Sleep(100);
combox.Hide();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}