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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 移动端,分享插件

    移动端,分享插件

    2021年10月28日
  • 操作系统中的进程调度策略有哪几种「建议收藏」

    操作系统中的进程调度策略有哪几种「建议收藏」先来先服务调度算法:先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。当在作业调度中采用该算法时,每次调度都是从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为它们分配资源、创建进程,然后放入就绪队列。在进程调度中采用FCFS算法时,则每次调度是从就绪队列中选择一个最先进入该队列的进程,为之分配处理机,使之投入运行。该进程一直运行到…

  • translate3d模拟滚动条

    translate3d模拟滚动条做移动端页面,通常是不用原生的scroll,而是用translate3d来模拟,原因主要是原生的scroll对移动端的支持并不是很好,样式也不好看(有滚动条出现),用translate3d来模拟还可以调用GPU来加速,提高性能。html:

    2022年10月27日
  • 以过来人的身份聊聊实习招聘、秋招、春招(给应届毕业生)

    以过来人的身份聊聊实习招聘、秋招、春招(给应届毕业生)没有学长、学姐能够清楚地告诉我,这些东西的意义。我自己从大三暑期到大四把这三个阶段完整地经历过了,当然因为自己想法多多,心高气傲,无视实习机会,无视秋招。在春招的时候,苦逼求一个面试机会,很多时间就在

  • c++和java哪个好学_c++语言和Java语言,初学者该如何选择?「建议收藏」

    c++和java哪个好学_c++语言和Java语言,初学者该如何选择?「建议收藏」方向比努力更重要,对于初学编程的人来说选择一门合适的编程语言关系到自己以后的职业发展。c++和Java的区别有哪些?哪个更适合作为入门语言?今天就听小姐姐来讲一讲。 C++语言它是正宗的C语言的嫡系,由C语言发展而来。C++支持多种编程范式–面向对象编程、泛型编程和过程化编程,支持类:类、封装、重载等特性。C++语言的主要特点表现在两个方面,一是尽量兼容C,二是支持面向对象的方法。它操持了C的…

  • 无源汇上下界可行流_有源点和无源点的区别

    无源汇上下界可行流_有源点和无源点的区别给定一个包含 n 个点 m 条边的有向图,每条边都有一个流量下界和流量上界。给定源点 S 和汇点 T,求源点到汇点的最小流。输入格式第一行包含四个整数 n,m,S,T。接下来 m 行,每行包含四个整数 a,b,c,d 表示点 a 和 b 之间存在一条有向边,该边的流量下界为 c,流量上界为 d。点编号从 1 到 n。输出格式输出一个整数表示最小流。如果无解,则输出 No Solution。数据范围1≤n≤50003,1≤m≤125003,1≤a,b≤n,0≤c≤d≤21474836

发表回复

您的电子邮箱地址不会被公开。

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