2014-07-30 DataGridView单元格ComboBox控件Index
2020-12-13 06:06
标签:datagridview style blog color 使用 os for 2014 项目是在DataGridView单元格中搞得ComboBox控件。 而且要根据ComboBox对应的不同选项,来确定界面上的另一个ComboBox控件是否可用。 这样问题就出来了: DataGridView中的ComboBox是没有事件的! 当更改了Combox中的值以后,必须用鼠标点一下别的地方(鼠标离开此单元格),才会走CellValueChanged事件...... 研究+百度了好久,都不行,终于在中午灵光一闪,搞定了! 思路就是把这个没有事件的单元格,变成有事件的控件: 由于使用的是EditingControlShowing事件,所以第一次点击会传一个空值,导致cbo_Test的值被清空。 为了解决这个问题,采用了一个全局变量来记录这个值,也就是相当于重新赋了一遍值,会闪一下。 有点遗憾...... 不过,毕竟算是解决了问题,而且DataGridView中的二级联动也可以根据这个来实现。 所以,这个方法虽然不够完美,但应该还是有点儿参考价值的#^_^#~~~ 2014-07-30 DataGridView单元格ComboBox控件Index,搜素材,soscw.com 2014-07-30 DataGridView单元格ComboBox控件Index 标签:datagridview style blog color 使用 os for 2014 原文地址:http://www.cnblogs.com/liverpool/p/3895526.html 1 //定义全局变量。
2 int i_Enable;
3 int i_Index;
4
5 //给界面上的ComboBox控件注册Leave事件。
6 private void cbo_Test_Leave(~~~)
7 {
8 i_Index=cbo_Test.SelectedIndex;
9 }
10
11 //给DataGridView注册CellClick事件。
12 private void dgv_Test_CellClick(~~~)
13 {
14 i_Index=cbo_Test.SelectedIndex;
15 }
16
17 //给DataGridView注册EditingControlShowing事件。
18 private void dgv_Test_EditingControlShowing(~~~)
19 {
20 if(this.dgv_Test.CurrentCell.OwningColumn.Name="col_Test")
21 {
22 ((ComboBox)e.Control).SelectedIndexChanged+=new EventHandler(ComboBox_SelectedIndexChanged);
23 }
24 }
25
26 //定义ComboBox_SelectedIndexChanged事件。
27 private void ComboBox_SelectedIndexChanged(~~~)
28 {
29 string str=((ComboBox)sender).Text.Trim();
30 DataGridViewColumn tmpCol=dgv_Test.CurrentCell.OwningColumn;
31 if(tmpCol.Name="col_Test":)
32 {
33 if(x=="v_Enable")
34 {
35 i_Enable=1;
36 }
37 else
38 {
39 DataGridViewRow tmpRow=dgv_Test.CurrentCell.OwningRow;
40 for(int i=0;i
上一篇:python--元祖
下一篇:js的this和面向对象编程
文章标题:2014-07-30 DataGridView单元格ComboBox控件Index
文章链接:http://soscw.com/essay/32429.html