C#中怎么获取comboBox下拉列表选中项的Tag值,急。。。。。。

我用SQL数据库连接加载了一个comboBox列表框,在开始加载的时候,我就把数据库的ID加载到了comboBox列表框的Tag值里,我现在想我选择列表里的某一项里,取出... 我用SQL数据库连接加载了一个comboBox列表框,在开始加载的时候,我就把数据库的ID加载到了comboBox列表框的Tag值里,我现在想我选择列表里的某一项里,取出comboBox当前项的Tag值。。。。不怎么怎么写代码,请那个高手帮助下。。。。? 展开
 我来答
apu510064
2011-07-15 · TA获得超过964个赞
知道小有建树答主
回答量:1634
采纳率:55%
帮助的人:911万
展开全部
按照你现在的做法,你保存的Tag,应该用一个符号对每个ID进行分割,如:1,2,3
string[] arrID=comboBox.Tag.ToString().Split(new string[] {','},System.StringSplitOptions.None);
string myID=arrID[comboBox.SelectIndex];
这个myID就是你想要的ID,前提是你的下拉框的值的顺序要和ID的顺序一致,否则出错。

另一个做法,把DataTable绑定到comboBox
cboDiscount.DataSource = myDataTable;//这个DataTable是你从数据库拿出来的包括ID和值
cboDiscount.ValueMember = "ID";//这对应你的字段名
cboDiscount.DisplayMember = "Name";对应你的字段名
用户选择后,你可以通过这个语句,拿到ID的值
string myID=cboDiscount.SelectedValue.ToString();
irvinerun
2011-07-15
知道答主
回答量:55
采纳率:0%
帮助的人:32万
展开全部
我个人认为
当你使用tag值的时候 是因为你需要多个值保存在Combox列表里面 只有Text和Value你不够用
所以你选择了Tag值
但这是一种错误的编程方法
combox的Item是object类型 当你给combox数据源的时候 其实combox就已经把一个完整的类型做为Item付给了combox 只不过是提供了Text和Value两个比较容易操作的对象
我想你应该是用一个DataTable当做数据源了
那么 当你选定一条记录时 你想获取这个combox的选中项的所有有关信息时
((DataRow)cbAccInfor.SelectedItem)["table列名"].ToString();
你就能得到你想要的值
当然 前提是你给的数据类型是DataTable 那每一个Item的类型就是DataRow
如果是Ilist等做数据源给Combox 你就((数据行类型)cbAccInfor.SelectedItem).类名.ToString()就行了

楼上写comboBoxItem,是没有这个类型的 combox.SelectItem是object的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
4末午后红茶
2011-07-15 · 超过13用户采纳过TA的回答
知道答主
回答量:53
采纳率:0%
帮助的人:37万
展开全部
comboBoxItem item=this.comboBox1.selectedItem as comboBoxIte;
string tag=item.Tag.ToString();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
rsqmxvoze
2011-07-16 · TA获得超过634个赞
知道小有建树答主
回答量:622
采纳率:0%
帮助的人:267万
展开全部
Tag属性是个基类对象类型Object,所以你可一个把任何的对象实例赋值给它,所以如果你的zidian是个对象实例的话,你可以直接:
this.comleibie.Tag = zidian;
然后在使用的时候,再把Tag属性强制类型转换成zidian对象所对应的类实例就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式