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

 

这里以给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了,这里需要注意的是处理完后一定要撤销动态事件,否则会带来很大的麻烦,效果如下

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值