WinForm下ComboBox设定SelectedValue总结

WinForm下ComboBox设定SelectedValue总结WinForm下ComboBox设定SelectedValue总结

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               

最近在项目中处理一个winForm中设定ComboBox值,奇怪的是用一个对象匹配ComboBox的Datasource集合的一个对象时,设置SelectedValue时,竟然得到SelectedValue为null。

网上搜索一下,有说是如果用DateSet绑定时,SelectedValue得到的是null或DataRowView。

后来反复实践,发现可以用以下方法实现:

[c-sharp]
view plain
copy
print
?

  1. private void SetValueByItem()  
  2.         {  
  3.             Area a = new Area();  
  4.             a.Area_ID = “8”;  
  5.             a.Area_Name = “第8名”;  
  6.             cbList.SelectedItem = ac.FindAll(delegate(Area ar) { return ar.Area_ID == a.Area_ID; })[0];  
  7.             lbResult.Text = cbList.SelectedItem.GetType().ToString() + “:” + cbList.SelectedValue.ToString();  
  8.         }  

private void SetValueByItem()        {            Area a = new Area();            a.Area_ID = “8”;            a.Area_Name = “第8名”;            cbList.SelectedItem = ac.FindAll(delegate(Area ar) { return ar.Area_ID == a.Area_ID; })[0];            lbResult.Text = cbList.SelectedItem.GetType().ToString() + “:” + cbList.SelectedValue.ToString();        }

其他两种设置方式:

[c-sharp]
view plain
copy
print
?

  1. private void SetValueByValue()  
  2.        {  
  3.            Area a = new Area();  
  4.            a.Area_ID = “8”;  
  5.            a.Area_Name = “第8名”;  
  6.            cbList.SelectedValue = a.Area_ID;  
  7.            lbResult.Text = cbList.SelectedValue.GetType().ToString() + “:” + cbList.SelectedValue.ToString();  
  8.        }  

private void SetValueByValue()        {            Area a = new Area();            a.Area_ID = “8”;            a.Area_Name = “第8名”;            cbList.SelectedValue = a.Area_ID;            lbResult.Text = cbList.SelectedValue.GetType().ToString() + “:” + cbList.SelectedValue.ToString();        }

[c-sharp]
view plain
copy
print
?

  1. private void SetValueByText()  
  2.         {  
  3.             Area a = new Area();  
  4.             a.Area_ID = “8”;  
  5.             a.Area_Name = “第8名”;  
  6.             cbList.SelectedIndex = cbList.FindString(a.Area_Name);  
  7.             lbResult.Text = cbList.SelectedValue.GetType().ToString() + “:” + cbList.SelectedValue.ToString();  
  8.         }  

private void SetValueByText()        {            Area a = new Area();            a.Area_ID = “8”;            a.Area_Name = “第8名”;            cbList.SelectedIndex = cbList.FindString(a.Area_Name);            lbResult.Text = cbList.SelectedValue.GetType().ToString() + “:” + cbList.SelectedValue.ToString();        }

完整代码:

[c-sharp]
view plain
copy
print
?

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.ComponentModel;  
  4. using System.Data;  
  5. using System.Drawing;  
  6. using System.Text;  
  7. using System.Windows.Forms;  
  8. namespace WinFormCombobox  
  9. {  
  10.     public partial class frmMain : Form  
  11.     {  
  12.         public frmMain()  
  13.         {  
  14.             InitializeComponent();  
  15.         }  
  16.         #region Members  
  17.         AreaLists ac;  
  18.         public AreaLists GetTestArea()  
  19.         {  
  20.             AreaLists al = new AreaLists();  
  21.             for (int i = 1; i < 11; i++)  
  22.             {  
  23.                 Area a = new Area();  
  24.                 a.Area_ID = i.ToString();  
  25.                 a.Area_Name = “第” + i.ToString() + “名”;  
  26.                 al.Add(a);  
  27.             }  
  28.             return al;  
  29.         }  
  30.         #endregion  
  31.         #region Events  
  32.         private void frmMain_Load(object sender, EventArgs e)  
  33.         {  
  34.             ac = GetTestArea();  
  35.             cbList.DataSource = ac;  
  36.             cbList.DisplayMember = “Area_Name”;  
  37.             cbList.ValueMember = “Area_ID”;  
  38.         }  
  39.         private void btnSetCombobox_Click(object sender, EventArgs e)  
  40.         {  
  41.             SetValue0();  
  42.             //SetValueByValue();  
  43.             SetValueByItem();  
  44.             SetValueByText();  
  45.         }  
  46.         #endregion  
  47.         #region Methods  
  48.         private void SetValue0()  
  49.         {  
  50.             Area a = new Area();  
  51.             a.Area_ID = “8”;  
  52.             a.Area_Name = “第8名”;  
  53.             cbList.DataSource = GetTestArea();  
  54.             cbList.DisplayMember = “Area_Name”;  
  55.             cbList.ValueMember = “Area_ID”;  
  56.             cbList.SelectedValue = a.Area_ID;  
  57.             lbResult.Text = cbList.SelectedValue.ToString();  
  58.         }  
  59.         private void SetValueByValue()  
  60.         {  
  61.             Area a = new Area();  
  62.             a.Area_ID = “8”;  
  63.             a.Area_Name = “第8名”;  
  64.             cbList.SelectedValue = a.Area_ID;  
  65.             lbResult.Text = cbList.SelectedValue.GetType().ToString() + “:” + cbList.SelectedValue.ToString();  
  66.         }  
  67.         private void SetValueByItem()  
  68.         {  
  69.             Area a = new Area();  
  70.             a.Area_ID = “8”;  
  71.             a.Area_Name = “第8名”;  
  72.             cbList.SelectedItem = ac.FindAll(delegate(Area ar) { return ar.Area_ID == a.Area_ID; })[0];  
  73.             lbResult.Text = cbList.SelectedItem.GetType().ToString() + “:” + cbList.SelectedValue.ToString();  
  74.         }  
  75.         private void SetValueByText()  
  76.         {  
  77.             Area a = new Area();  
  78.             a.Area_ID = “8”;  
  79.             a.Area_Name = “第8名”;  
  80.             cbList.SelectedIndex = cbList.FindString(a.Area_Name);  
  81.             lbResult.Text = cbList.SelectedValue.GetType().ToString() + “:” + cbList.SelectedValue.ToString();  
  82.         }  
  83.         #endregion  
  84.     }  
  85. }  
  86.   
  87. using System;  
  88. using System.Collections.Generic;  
  89. using System.Text;  
  90. namespace WinFormCombobox  
  91. {  
  92.     #region Area  
  93.     public class Area  
  94.     {  
  95.         private string m_Area_ID;  
  96.         public string Area_ID  
  97.         {  
  98.             get { return m_Area_ID; }  
  99.             set { m_Area_ID = value; }  
  100.         }  
  101.         private string m_Area_Name;  
  102.         public string Area_Name  
  103.         {  
  104.             get { return m_Area_Name; }  
  105.             set { m_Area_Name = value; }  
  106.         }  
  107.         private double m_Area_Order;  
  108.         public double Area_Order  
  109.         {  
  110.             get { return m_Area_Order; }  
  111.             set { m_Area_Order = value; }  
  112.         }  
  113.     }  
  114.     #endregion  
  115.     [Serializable]  
  116.     public class AreaLists : List<Area>  
  117.     {  
  118.         private int _maxItems = 0;  
  119.         public int MaxItems { get { return this._maxItems; } set { this._maxItems = value; } }  
  120.     }  
  121. }  

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace WinFormCombobox{    public partial class frmMain : Form    {        public frmMain()        {            InitializeComponent();        }        #region Members        AreaLists ac;        public AreaLists GetTestArea()        {            AreaLists al = new AreaLists();            for (int i = 1; i < 11; i++)            {                Area a = new Area();                a.Area_ID = i.ToString();                a.Area_Name = “第” + i.ToString() + “名”;                al.Add(a);            }            return al;        }        #endregion        #region Events        private void frmMain_Load(object sender, EventArgs e)        {            ac = GetTestArea();            cbList.DataSource = ac;            cbList.DisplayMember = “Area_Name”;            cbList.ValueMember = “Area_ID”;        }        private void btnSetCombobox_Click(object sender, EventArgs e)        {            SetValue0();            //SetValueByValue();            SetValueByItem();            SetValueByText();        }        #endregion        #region Methods        private void SetValue0()        {            Area a = new Area();            a.Area_ID = “8”;            a.Area_Name = “第8名”;            cbList.DataSource = GetTestArea();            cbList.DisplayMember = “Area_Name”;            cbList.ValueMember = “Area_ID”;            cbList.SelectedValue = a.Area_ID;            lbResult.Text = cbList.SelectedValue.ToString();        }        private void SetValueByValue()        {            Area a = new Area();            a.Area_ID = “8”;            a.Area_Name = “第8名”;            cbList.SelectedValue = a.Area_ID;            lbResult.Text = cbList.SelectedValue.GetType().ToString() + “:” + cbList.SelectedValue.ToString();        }        private void SetValueByItem()        {            Area a = new Area();            a.Area_ID = “8”;            a.Area_Name = “第8名”;            cbList.SelectedItem = ac.FindAll(delegate(Area ar) { return ar.Area_ID == a.Area_ID; })[0];            lbResult.Text = cbList.SelectedItem.GetType().ToString() + “:” + cbList.SelectedValue.ToString();        }        private void SetValueByText()        {            Area a = new Area();            a.Area_ID = “8”;            a.Area_Name = “第8名”;            cbList.SelectedIndex = cbList.FindString(a.Area_Name);            lbResult.Text = cbList.SelectedValue.GetType().ToString() + “:” + cbList.SelectedValue.ToString();        }        #endregion    }}using System;using System.Collections.Generic;using System.Text;namespace WinFormCombobox{    #region Area    public class Area    {        private string m_Area_ID;        public string Area_ID        {            get { return m_Area_ID; }            set { m_Area_ID = value; }        }        private string m_Area_Name;        public string Area_Name        {            get { return m_Area_Name; }            set { m_Area_Name = value; }        }        private double m_Area_Order;        public double Area_Order        {            get { return m_Area_Order; }            set { m_Area_Order = value; }        }    }    #endregion    [Serializable]    public class AreaLists : List<Area>    {        private int _maxItems = 0;        public int MaxItems { get { return this._maxItems; } set { this._maxItems = value; } }    }}

 

邀月注:本文版权由邀月和CSDN共同所有,转载请注明出处。
助人等于自助!   3w@live.cn

 

 

 

 

           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

这里写图片描述
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/207128.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 流程图的绘图规范_流程图绘制的基本规则

    流程图的绘图规范_流程图绘制的基本规则画了多年的流程图,你真的画规范了吗?|人人都是产品经理流程有哪些作用?我们为什么要画流程图呢?正确的画流程图规范是什么?流程图是一个很强大的工具,在我们的日常工作中经常会使用到。但我们也发现,有时看到别人流程图的画法、规范都不太一样,这是为什么呢?难道流程图就没有统一的标准或规范吗?基于这个疑问,我出于好奇认http://www.woshipm.com/zhichang/2329530.html以上为笔记来源出!一、流程图的符号要求 有几个重要且常用的符号:…

    2022年10月27日
  • 2020最全JVM垃圾回收机制面试题整理,阿里面试官最爱问的都在这里了(附答案)

    2020最全JVM垃圾回收机制面试题整理,阿里面试官最爱问的都在这里了(附答案)前言为什么需要垃圾回收首先我们来聊聊为什么会需要垃圾回收,假设我们不进行垃圾回收会造成什么后果,我们举一个简单的例子我们住在一个房子里面,我们每天都在里面生活,然后垃圾都丢在房子里面,又不打扫,最后房子都是垃圾我们是不是就没法住下去了。所以JVM垃圾回收机制也是一样的,当我们创建的对象占据堆空间要满了的的时候我们就对他进行垃圾回收,注意java的垃圾回收是不定时的,c语言的是需要去调用垃圾回收方法刚刚也说到上面举的例子也说到假设一个房子都被垃圾堆满了那么我们没法住人了那么我们是不是会告

    2022年5月25日
  • tabnine专业版激活码【2021最新】

    (tabnine专业版激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月21日
  • Flume+Kafka整合案例实现

    Flume+Kafka整合案例实现 一、为什么要集成Flume和Kafka我们很多人在在使用Flume和kafka时,都会问一句为什么要将Flume和Kafka集成?那首先就应该明白业务需求,一般使用Flume+Kafka架构都是希望完成实时流式的日志处理,后面再连接上Flink/Storm/SparkStreaming等流式实时处理技术,从而完成日志实时解析的目标。第一、如果Flume直接对接实时计算框架,当数据采集速…

    2022年6月23日
  • 算术运算符——整数运算

    算术运算符——整数运算

    2022年3月12日
  • CPU 流水线的前世今生[通俗易懂]

    CPU 流水线的前世今生[通俗易懂]title:CPU流水线的前世今生date:2021-11-2121:56:40author:gatiemetags:-linux-architecture-intelcategories:-技术积累thumbnail:blogexcerpt:CPU流水线的探秘之旅本作品采用知识共享署名-非商业性使用-相同方式共享4.0国际许可协议进行许可,转载请注明出处,谢谢合作因本人技术水平和知识面有限,内容如有纰漏或者需要修正的地方,欢迎大家指正,鄙.

    2022年8月20日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号