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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 建立友好城市有什么用_缔结友好城市

    建立友好城市有什么用_缔结友好城市原题连接Palmia国有一条横贯东西的大河,河有笔直的南北两岸,岸上各有位置各不相同的N个城市。北岸的每个城市有且仅有一个友好城市在南岸,而且不同城市的友好城市不相同。每对友好城市都向政府申请在河上开辟一条直线航道连接两个城市,但是由于河上雾太大,政府决定避免任意两条航道交叉,以避免事故。编程帮助政府做出一些批准和拒绝申请的决定,使得在保证任意两条航线不相交的情况下,被批准的申请尽量多。输入格式第1行,一个整数N,表示城市数。第2行到第n+1行,每行两个整数,中间用1个空格隔开,分别表示南岸和

    2022年8月9日
    5
  • 动态规划之背包问题——01背包

    动态规划之背包问题——01背包文章目录一、01背包问题二、二维dp数组解决01背包问题1.确定dp数组以及下标的含义2.确定递推公式3.dp数组初始化4.确定遍历顺序5.举例推导dp数组三、一维dp数组解决01背包问题1.确定dp数组以及下标的含义2.一维dp数组的递推公式3.一维dp数组如何初始化4.一维dp数组遍历顺序5.举例推导dp数组四、leetcode例题讲解01背包问题416.分割等和子集1049.最后一块石头的重量II494.目标和474.一和零背包问题中我们常见的就是01背包和完全背包。在l

    2022年7月26日
    7
  • vue生成二维码并下载[通俗易懂]

    vue生成二维码并下载[通俗易懂]vue生成二维码图片,这里使用的是qrcode.js这个插件1、下载插件npminstall–saveqrcodejs22、组件内使用<template><Buttontype=”primary”size=”small”@click=”getScan()”>扫一扫</Button><Buttontype=”primary”size=”small”@click=”getDownload()”>下载</Bu..

    2022年10月3日
    2
  • 消息队列 rabbitmq面试题(中间件面试题)

    文章目录为什么使用MQ?MQ的优点消息队列有什么优缺点?RabbitMQ有什么优缺点?你们公司生产环境用的是什么消息中间件?Kafka、ActiveMQ、RabbitMQ、RocketMQ有什么优缺点?MQ有哪些常见问题?如何解决这些问题?什么是RabbitMQ?rabbitmq的使用场景RabbitMQ基本概念RabbitMQ的工作模式如何保证RabbitMQ消息的顺序性?消息如何分发?消…

    2022年4月14日
    60
  • SQL学习笔记(基础部分)

    SQL学习笔记(基础部分)SQL学习笔记基础部分SQL语法数据库语言对大小写不敏感,用分号分隔每条数据库语言SQL通用数据类型SQL开发,在创建SQL表时要确定每个列要存储的数据类型,每一列都需要一个列名和确定的数据类型常见数据类型自行查询一些重要的SQL命令selectupdatedeleteinsertintocreatedatabasealterdatab

    2022年8月20日
    9
  • 【三万粉丝终极福利】Python、C、Java三大语言学习路线和资源整理

    大家好,我是辣条。今天给大家带来三万粉丝三大语言学习路线和资源整理,收藏就对了。目录C语言学习路线学习书籍学习视频资源推荐Java语言学习路线学习书籍学习视频资源推荐Python语言学习路线学习书籍学习视频资源推荐C语言学习路线学习书籍学习视频资源推荐Java语言学习路线学习书籍学习视频资源推荐Python语言学习路线学习书籍学习视频资源推荐

    2022年4月6日
    49

发表回复

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

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