C#winform问题 datagridview中combobox选项改变触发事件用哪个方法。你是用什么方法解决的啊。

C#winform问题 datagridview中combobox选项改变触发事件用哪个方法。你是用什么方法解决的啊。能帮我一下不?

SelectedIndexChanged事件。
如果你的combobox控件名为comboBox1,那么可以这样注册事件:
comboBox1.SelectedIndexChanged+=new EventHandler(comboBox1_SelectedIndexChanged);

然后,当选项改变时,可以在以下事件中处理:
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
//你的处理代码,sender为combobox控件,使用前需先转换为ComboBox类型
}追问

你说的这种方式我用了。只是我用的是datagridview的EditingControlShowing事件。可以得到选择的值。但是有个奇怪现象就是。我在SelectedIndexChanged中添加了一个messageBox的调试信息,每次comboBox的值发生改变后,messageBox都会弹出很多次。

追答

哦,我大概明白楼主的问题了。
你是不是在EditingControlShowing事件里,注册了combobox的SelectedIndexChanged事件?
如果是的话,那来回选择下拉框次数多了,的确会弹出好几次messagebox,因为你注册了多次SelectedIndexChanged事件,程序会在之后的选择中,弹出你注册次数的messagebox数。
这个问题只需要在注册(+=)之前,先注销事件(-=)就行了,保证每个combobox只注册了一次。
第一次用-=时会有错误,因为还没注册就注销了,所以可以在-=处try catch下。

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-03-25
没弄明白你的主要意图,你是要触发那个事件来干嘛的?
你可以写datagridview的CellValueChanged来触发事件,这个事件的功能就是当datagridview中的单元格数据发生变化时引发的事件,string da = (cmbDay.SelectedIndex+1).ToString(); //定义一个变量来接收combobox中选择的值。
在将值赋给datagridview的单元格 如下:
da=datagridview.Rows[e.RowIndex].Cells[3].Value.ToString();//表示赋给当前行第四个单元格
这是我根据你提问的大概理解做出的答案,希望对你有所帮助.....有不明白的可以随时找哦!!追问

我要实现的效果是这样子:我自己生成了datagridView的整体结构,根据查询得到的dataTable的数据,将信息添加到datagridview的指定列中。并在后面增加了一列DataGridViewComboBoxColumn,根据DataGridViewComboBoxColumn中选择值不同,再调用不同的form出来处理相关信息。
现在遇到的问题就是我在SelectedIndexChanged中添加了一个messageBox的调试信息,每次comboBox的值发生改变后,messageBox都会弹出很多次。不知道怎么处理。

追答

那你试下datagridview的CellValueChanged事件,这个应该可以解决你的问题。

第2个回答  2011-03-25
CellValidated 或 CellValueChanged 事件 你试下本回答被提问者和网友采纳
第3个回答  2011-03-25
用值改变事件可以么,你想要什么效果啊

C#winform问题 datagridview中combobox选项改变触发事件用哪个方法。你...
comboBox1.SelectedIndexChanged+=new EventHandler(comboBox1_SelectedIndexChanged);然后,当选项改变时,可以在以下事件中处理:private void comboBox1_SelectedIndexChanged(object sender, EventArgs e){ \/\/你的处理代码,sender为combobox控件,使用前需先转换为ComboBox类型 } ...

C#winform问题 datagridview中combobox选项改变触发事件用哪个方法
这个需要触发的是datagridview的CellContentClick事件,在这个事件里,判断你的datagridview的ColumnIndex是不是所属的combobox的索引,如果是,才进行进一步的操作,例如:\/\/假定你的 combobox的索引是5,如果不确定,可以通过弹出e.ColumnIndex看看你所点击的combobox的索引是几 private void datagridview_Cell...

你好,请问怎么用C#的combobox实现对datagridview的筛选并显示,我就用...
在combobox的SelectedIndexChanged事件里,获取combobox的值,根据这个值重新去数据库获取数据,作为数据源绑定到datagridview。成功!

C# winform中如何取得datagridview中的combobox选择的值,取的ValueMemb...
foreach(GridViewRow row in GridView1.Rows){ foreach(Control contr in row.Controls){ ComboBox cbo = contr as ComboBox;if(cbo != null){ \/\/找到咯,给分 记住用cbo.SelectedItem.Text ...} } }

C# 如何在一个Datagridview 的 某一个cell里面 绑定一个自定义的combo...
} \/\/ 然后,在这个事件处理函数中做绑定的处理,我这段代码是动态的改变一个cell的值,并修改对齐方式。你可以改成绑定新Cell的操作。private void editingControl_DropDownClosed(object sender, EventArgs e){ DataGridViewComboBoxEditingControl ctl = sender as DataGridViewComboBoxEditingControl;DataRow...

C#中如何将一个comboBox组件放置dataGridView组件中的某一个确定的单 ...
WinForm的DataGrid要显示ComboBox的效果必须要写一个继承自DataGridTextBoxColumn的类, 并在其中制作ComboBox的功能, 再把这个类的对象加入到DataGrid中使用即可, 做法如下:DataGridComboBoxColumn ComboCol =new DataGridComboBoxColumn();ComboCol.MappingName = "RegionID";ComboCol.HeaderText = "Region";...

datagridviewcomboboxcolumn可选可编辑的方法 谁能翻译C#成VB.net
在后台写就是 DataGridView.rows[i].cells[6].controls.add(new dropdownlist());还有 如果表结构比较复杂 建议你自己做表,不要使用GridView,即使使用了,也自己写修改,删除事件,不要用自带的,存在很多问题

(c# winform )大神们进来瞧一瞧,datagridview combox下拉条突然变成黑色...
\/\/\/ public interface I监听 { void 接收(消息 e); } \/\/\/ \/\/\/ 推送事件通知的接口。持有一个监听对象的列表,事件发生时会创建消息,并将此通知列表中所有对象。 \/\/\/ public interface I通知 { void 通知(消息 e); void 添加(I监听 I监听); void 移除(I...

C# winform datagridview 里的下拉框中 既可以从下拉框里选择数据,也可...
或者采用以下方法:((DataGridViewComboBoxColumn)dataGridView1.Columns["绑定列"]).DataSource = ds;((DataGridViewComboBoxColumn)dataGridView1.Columns["绑定列"]).DisplayMember = "clevel";((DataGridViewComboBoxColumn)dataGridView1.Columns["绑定列"]).ValueMember = "clevel";((DataGridView...

.winform中的datagridview控件中的DataGridViewComboBoxColumn下拉项背景...
\/\/先将你要赋值的那个Cell转换类型成DataGridViewComboBoxCell,然后就可以赋值了 DataGridViewComboBoxCell cell = dataGridView1[0, 0] as DataGridViewComboBoxCell;cell.Items.Add("aaa");cell.Items.Add("bbb");

相似回答