您的位置:首页 > 其它

给DataGridView中的控件添加事件和下拉框

2009-03-22 09:17 441 查看
这里以给DataGridView添加下拉框,并当下拉框选项发生变化后给DataGridView的其他列赋值为例:



我要实现的功能如下:
修改Column1的值时,同时自动修改Column2的值,修改Column4的值时同时修改Column3的值,这就需要给两个下拉框添加事件,添加的方式如下:
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
//判断相应的列
if (dataGridView1.CurrentCell.ColumnIndex == 0 && dataGridView1.CurrentCell.RowIndex != -1)
{
((ComboBox)e.Control).SelectedIndexChanged += new EventHandler(Form1_SelectedIndexChanged);
}
//判断相应的列
else if (dataGridView1.CurrentCell.ColumnIndex == 3)
{
((ComboBox)e.Control).SelectedIndexChanged += new EventHandler(Form1_SelectedIndexChanged2);
}
}
然后写相应的触发事件:
/// <summary>
/// 组合框事件处理
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void Form1_SelectedIndexChanged(object sender, EventArgs e)
{
MessageBox.Show(((ComboBox)sender).Text, "Column1");
dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[1].Value = "safsafasfdsdf";
//做完处理,须撤销动态事件
((ComboBox)sender).SelectedIndexChanged -= new EventHandler(Form1_SelectedIndexChanged);
}
void Form1_SelectedIndexChanged2(object sender, EventArgs e)
{
MessageBox.Show(((ComboBox)sender).Text, "Column4");
dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[2].Value = "12334534634";
//做完处理,须撤销动态事件
((ComboBox)sender).SelectedIndexChanged -= new EventHandler(Form1_SelectedIndexChanged2);
}
就这样就OK了,这里需要注意的是处理完后一定要撤销动态事件,否则会带来很大的麻烦,效果如下









内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: