C# winform中ComboBox两种数据绑定的方法及其效率

这篇具有很好参考价值的文章主要介绍了C# winform中ComboBox两种数据绑定的方法及其效率。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、ComboBox两种数据绑定的方法

1.1、方法一、DataTable

           //创建DataTable
            DataTable dataTable = new DataTable();

            dataTable.Columns.Add("ID");
            dataTable.Columns.Add("Name");

            DataRow dataRow = dataTable.NewRow();

            dataRow["ID"] = "1";
            dataRow["Name"] = "方法1-测试1";
            dataTable.Rows.Add(dataRow);

            DataRow dataRow1 = dataTable.NewRow();
            dataRow1["ID"] = "2";
            dataRow1["Name"] = "方法1-测试2";
            dataTable.Rows.Add(dataRow1);

            DataRow dataRow2 = dataTable.NewRow();
            dataRow2["ID"] = "3";
            dataRow2["Name"] = "方法1-测试3";
            dataTable.Rows.Add(dataRow2);

            // ComboBox数据绑定
            this.comboBox1.DataSource = dataTable;
            comboBox1.DisplayMember = "Name";
            comboBox1.ValueMember = "ID";

1.2、方法二、List

         

       //创建Test类
        public class Test
        {
            public Test() { }

            public Test(int sid, string name, int age)
            {
                SID = sid;
                Name = name;
                Age = age;
            }
            public string Name { get; }
            public int Age { get; }
            public int SID { get; }

         }

          


        public List<Test> GetDate2()
        {

            List<Test> list = new List<Test>();

            Test test = new Test(1, "方法二--测试1", 21);
            list.Add(test);

            Test test1 = new Test(2, "方法二--测试2", 22);

            list.Add(test1);

            Test test2 = new Test(3, "方法二--测试3", 23);

            list.Add(test2);

           // ComboBox数据绑定Lsit

            this.comboBox2.DataSource = list;
            comboBox2.DisplayMember = "Name";
            comboBox2.ValueMember = "SID";

            return list;


        }

二、比较两种方法的效率

 2.1、窗体设计

c# combobox 绑定,c#,前端

 

2.2、代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();


            方法一
            //this.comboBox1.DataSource = GteDate1();

            //comboBox1.DisplayMember = "Name";
            //comboBox1.ValueMember = "ID";

            方法二
            //this.comboBox2.DataSource = GetDate2();

            //comboBox2.DisplayMember = "Name";
            //comboBox2.ValueMember = "SID";


            #region 处理2


            //创建计时
            Stopwatch str1 = new Stopwatch();

            //计时开始
            str1.Start();

            //运行方法一
            GetDate1();

            // 计时停止
            str1.Stop();

            //控件label1显示出总共花费的时间(单位毫秒)
            this.label1Time1.Text = str1.Elapsed.TotalMilliseconds.ToString();



            //创建计时
            Stopwatch str2 = new Stopwatch();

            //计时开始
            str2.Start();

            //运行方法二
            GetDate2();

            // 计时停止
            str2.Stop();

            //控件label1显示出总共花费的时间(单位毫秒)
            this.label1Time2.Text = str2.Elapsed.TotalMilliseconds.ToString();

            #endregion 






          



        }



        #region ComboBox两种数据绑定的方法
        //方法一,dataTable
        public DataTable GetDate1()
        {

            //创建DataTable
            DataTable dataTable = new DataTable();

            dataTable.Columns.Add("ID");
            dataTable.Columns.Add("Name");

            DataRow dataRow = dataTable.NewRow();

            dataRow["ID"] = "1";
            dataRow["Name"] = "方法1-测试1";
            dataTable.Rows.Add(dataRow);

            DataRow dataRow1 = dataTable.NewRow();
            dataRow1["ID"] = "2";
            dataRow1["Name"] = "方法1-测试2";
            dataTable.Rows.Add(dataRow1);

            DataRow dataRow2 = dataTable.NewRow();
            dataRow2["ID"] = "3";
            dataRow2["Name"] = "方法1-测试3";
            dataTable.Rows.Add(dataRow2);

            // 数据绑定
            this.comboBox1.DataSource = dataTable;
            comboBox1.DisplayMember = "Name";
            comboBox1.ValueMember = "ID";

           

            return dataTable; 

        }


        // 方法二,list


            //创建Test类
        public class Test
        {
            public Test() { }

            public Test(int sid, string name, int age)
            {
                SID = sid;
                Name = name;
                Age = age;
            }
            public string Name { get; }
            public int Age { get; }
            public int SID { get; }

         }


        public List<Test> GetDate2()
        {


            List<Test> list = new List<Test>();

            Test test = new Test(1, "方法二--测试1", 21);


            list.Add(test);

            Test test1 = new Test(2, "方法二--测试2", 22);

            list.Add(test1);

            Test test2 = new Test(3, "方法二--测试3", 23);

            list.Add(test2);


            this.comboBox2.DataSource = list;
            comboBox2.DisplayMember = "Name";
            comboBox2.ValueMember = "SID";

            return list;




        }




         #endregion
    }
}

 2.3、两种方法消耗时间对比

list相对于DataTable消耗的时长要少

c# combobox 绑定,c#,前端文章来源地址https://www.toymoban.com/news/detail-516322.html

到了这里,关于C# winform中ComboBox两种数据绑定的方法及其效率的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 解决Winform的ComboBox下拉框鼠标双击事件无效的问题

    今天碰到一个需求:就是鼠标双击ComboBox后,然后模拟键盘空格键按下,测试发现,在ComboBox可以展开下拉框的情况下,鼠标双击事件是没有用的。想要实现鼠标双击事件,需要利用到鼠标单击事件,在鼠标单击事件中判断(当前时间减去上一次单击的时间)是否小于某个值(如

    2024年02月12日
    浏览(45)
  • WinForm使用Prism和DryIoc实现跨窗体数据绑定

    使用Prism和DryIoc实现跨窗体数据绑定 开发环境: VS2022 .Net 6.0 WinForm界面程序 要求: DryIoc容器注册为单例(Singleton)=DryIoc VM需要实现数据更改通知=Prism 控件数据限幅要一样=NumericUpDown 🍇️🍇️🍇️🍇️🍇️🍇️🍇️🍇️🍇️🍇️🍇️🍇️🍇️ 效果: Form2修改Score时Form1立即

    2024年02月10日
    浏览(41)
  • C# Winform鼠标样式设置方法

    在 Winform 中,默认鼠标样式是一个白色箭头,移到按钮 button 上也不变为手指形,不容易区分是否可以点击(特别是 button 样式不是默认的时候)。如果鼠标移到 button 上自动变为手形,像网页中的链接一样,则很容易区分能否点击,不管 button 样式是否完全改变(如:样式设

    2024年02月09日
    浏览(45)
  • 界面控件Telerik UI for WinForms使用指南 - 数据绑定 & 填充(一)

    Telerik UI for WinForms拥有适用Windows Forms的110多个令人惊叹的UI控件,所有的UI for WinForms控件都具有完整的主题支持,可以轻松地帮助开发人员在桌面和平板电脑应用程序提供一致美观的下一代用户体验。 Telerik UI for WinForms组件为可视化任何类型的数据提供了非常丰富的UI控件,其

    2023年04月27日
    浏览(60)
  • C# WinForm程序安全彻底退出方法

    本文讲解在C#退出WinForm程序的方法, 目录 4种常用方法 退出实例 1.this.Close();   只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管线程(非主线程),也无法干净地退出; 2.Application.Exit();  强制所有消息中止,退出所有的窗体,但是若有托管线程(

    2024年02月16日
    浏览(39)
  • 宝塔面板绑定域名之后无法登录的两种解决方法【图文教程亲测有效】

    手贱,点击了绑定域名,保存后直接报错了!! 为面板绑定一个访问域名,注意:一旦绑定域名,只能通过域名访问面板 报错如下: 去云服务器后台,使用命令: 使用命令 rm -f /www/server/panel/data/domain.conf 删除绑定域名后,就能用ip+端口进入面板了` 是的,就是没有备案导致的

    2024年02月12日
    浏览(50)
  • C#中的ComboBox控件

    当使用C#中的 ComboBox 控件时,你可以通过以下详细方法使用它: 在窗体上放置 ComboBox 控件: 在 Visual Studio 的窗体设计器中,从工具箱中拖动并放置一个 ComboBox 控件到你的窗体上。 设置 ComboBox 的属性: Items :用于设置或获取 ComboBox 中的选项集合。你可以通过添加项到集合

    2024年02月15日
    浏览(44)
  • c# winform循环数据采集

    以下是一个示例程序,用于演示如何在C# WinForm中循环收集数据: 在这个示例程序中,有两个按钮:开始采集和停止采集。单击开始采集按钮后,程序将启动一个后台线程来循环采集数据并将其添加到列表中。UpdateUI方法用于将采集到的新数据显示在UI上。当用户单击停止采集

    2024年02月13日
    浏览(39)
  • C# Winform DataGridView 数据刷新问题

    目录 一、问题 二、创建项目 三、绑定空的数据源 四、绑定有数据的数据源 五、修改绑定的数据源 六、解决数据源刷新问题 七、解决刷新数据界面闪烁 DataGridView 是比较常用的表格控件,在 DataGridView 中显示数据, 一般使用 dataGridView1.DataSource = 数据源,来绑定数据,数据

    2024年02月12日
    浏览(43)
  • Python_字符串(字符串拼接:join() 与 +拼接符两种方法效率对比)

    运算结果如下图所示: 显然,在循环1000000次的前提下,字符的join()运算效率远远高于使用+拼接符的运算。 其根本逻辑在于: 对于简单的+运算符,字符串每次相加都会创建一个新的对象。较为费时。 而对于join(),其用于列表内字符串的相加,列表中字符串的相加并不会创建

    2023年04月24日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包