datagridview中combobox的SelectedIndexChanged事件

.Net技术 码拜 6年前 (2015-02-25) 1114次浏览 0个评论

我在datagridview中创建了一个combobox列,然后要写SelectedIndexChanged函数如下所示:
 private void dataGridView_CurveDivide_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
        {
            if (e.Control.GetType().Equals(typeof(DataGridViewComboBoxEditingControl)))
            {
                e.CellStyle.BackColor = System.Drawing.Color.FromName(“window”);
                DataGridViewComboBoxEditingControl editingControl = e.Control as DataGridViewComboBoxEditingControl;
                editingControl.SelectedIndexChanged+=new EventHandler(editingControl_SelectedIndexChanged);
                
            }
        }
 public void editingControl_SelectedIndexChanged(object sender, EventArgs e)
        {
         string WallType = dataGridView_CurveDivide.CurrentCell.EditedFormattedValue.ToString();
            if (WallType.Equals(“墙”))
            {
                 Form wall=new Form();
                  wall.ShowDiag();
           }
        }   
在运行的时候我点击combobox的选项“墙”是可以运行窗体的,但是我的combobox列有3行,我点击第二行的combobox列选择“墙”时,窗体跳出来两次,点击第3行时窗体跳出来3次,再点击第1行时窗体跳出来4次,我发现他每次都记录点击次数的,然后叠加,然后窗体就根据总共点击的次数决定跳出来多少次。。
这是为什么啊?

 
datagridview中combobox的SelectedIndexChanged事件
因为你在
dataGridView_CurveDivide_EditingControlShowing
里绑定的事件
每点击一次,就绑定一次
你应该在绑定数据源之后,循环行,给这一列绑定事件,只绑定一次
datagridview中combobox的SelectedIndexChanged事件
 if (WallType==”墙”)
            {
                 Form oFrm=new Form();
                  oFrm.ShowDiag();
           }
datagridview中combobox的SelectedIndexChanged事件
引用 1 楼 Z65443344 的回复:

因为你在
dataGridView_CurveDivide_EditingControlShowing
里绑定的事件
每点击一次,就绑定一次
你应该在绑定数据源之后,循环行,给这一列绑定事件,只绑定一次

亲,我没有用到数据源~~
亲,那我该在哪里绑定这个个selected事件函数呢??

datagridview中combobox的SelectedIndexChanged事件
引用 2 楼 hefeng_aspnet 的回复:

 if (WallType==”墙”)
            {
                 Form oFrm=new Form();
                  oFrm.ShowDiag();
           }

这个只是修改string类型的比较方式么??我试了没有用哎~~

datagridview中combobox的SelectedIndexChanged事件
没有绑定数据源,那么你数据是什么时候添加到表格里的,绑定事件的代码写后面不就得了.
datagridview中combobox的SelectedIndexChanged事件
30分
要么你就在
editingControl_SelectedIndexChanged回调函数里
执行
editingControl.SelectedIndexChanged-=new EventHandler(editingControl_SelectedIndexChanged);
取消事件绑定,等下一次点击再重新绑定
datagridview中combobox的SelectedIndexChanged事件
引用 6 楼 Z65443344 的回复:

要么你就在
editingControl_SelectedIndexChanged回调函数里
执行
editingControl.SelectedIndexChanged-=new EventHandler(editingControl_SelectedIndexChanged);
取消事件绑定,等下一次点击再重新绑定

感谢~~~


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明datagridview中combobox的SelectedIndexChanged事件
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!