datagridview控件中的DataGridViewComboBoxColumn使用时怎么获取到下拉选项的SelectedIndex值

2024-12-04 18:34:50
推荐回答(1个)
回答1:

一般我们在使用ComboBox时,会先给其添加items,其中的items通常又会是一个枚举。
此处举例用:
public enum Criterion{Pass,
Fail,
UpLimit,
DownLimit}再生成一个枚举型的变量 private Criterion m_eCriterion
然后再根据其下拉的选项来使用,单独的ComboBox有SelectedIndex属性,获取所选的枚举值用 m_eCriterion = (Criterion)combox1.SelectedIndex;即可实现。
但是当这个ComboBox在Datagridview控件中,情况就不一样了。可以通过datagridview1.Rows[i].cell[0].Value.ToString()来得到这个所选的字符串,却得不到其SelectedIndex值,最初我想用(ComboBox)datagridview1.Rows[i].cell[0]来进行强制转换,但没有成功,没办法只好把上面得到的字符串再进行Switch,在每个case中进行枚举型的赋值,我想这肯定不是一个好的方案,请各位大虾出出主意。
------解决方案--------------------------------------------------------
combox cb = (ComboBox)datagridview1.Rows[i].cell[0].findControl(combox控件明)
int index=cb.selectIndex;
好像是这样的吧,你试试
------解决方案--------------------------------------------------------
设置DataGridViewComboBoxColumn的DisplayMember和ValueMember分别为显示的字符串和对应的枚举值。
------解决方案--------------------------------------------------------帮顶
------解决方案--------------------------------------------------------
学习,帮顶!
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------帮顶。
------解决方案--------------------------------------------------------
combox不是有SelectedText和SelectedItem这个属性吗,既然在datagrid里面你试试看。
------解决方案--------------------------------------------------------帮顶
------解决方案--------------------------------------------------------學習了幫頂~
------解决方案--------------------------------------------------------
其中column1为DataGridViewComboBoxColumnName,这样子就ok了