我想给DataGridView添加下拉框,并当下拉框选项发生变化后给DataGridView的其他列赋值。
在网上找到相关资料(http://hi.baidu.com/dnboy/blog/item/1e66308be4cfa010c9fc7a3d.html)
资料的主要内容如下:修改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);
}我是新手,把代码复制进去后没有实现任何效果,请问是代码的问题还是其他问题?(空间名称都对应了)
在网上找到相关资料(http://hi.baidu.com/dnboy/blog/item/1e66308be4cfa010c9fc7a3d.html)
资料的主要内容如下:修改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);
}我是新手,把代码复制进去后没有实现任何效果,请问是代码的问题还是其他问题?(空间名称都对应了)
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货