c# datagridview 中DataSource的使用总结
由于当前项目的窗体更新使用的是订阅事件的方式。其中有个datagridview 动态显示统计数据的列表框。本来想用textbox显示,但不规则,看起来也不美观,改由dgv显示。
我没打算用改dgv表的方式更新表内数据,涉及到检索重复等相关的要求,比如第一个事件 把某个产品加入,第二个事件来之后如果是跟第一个事件产品一样,在这个产品数加1,若不一样则另起一行。每次事件都要检索对比一次,导致效率降低
因为我已经对这些操作在前道里边通过list做了判断。所以在dgv里边在做一次重复操作显然多此一举,我需要 的是直接把打好的包 通过datasource的方式传递给dgv。
在实践过程中,涉及到几个问题;
第一,数据源不能是普通的list ,要用到bindinglist 或者bindingsource方法,最终觉得BindingSource 的方式最好。
第二,bingdinglist 直接赋值给dgv.DataSource ,dgv窗体不显示更新,尽管数值已经改变,但窗体就是不反应, bingdinglist.refresh 或者reset 也没什么用。这里边的探索没有进一步深入,因为最终用bindingsource解决
代码很简单
void OnOverTopInOrderForm(ReOverTopinOrderArgs e) //接收事件{BindingSource bs = new BindingSource(); if (dgvovertop.InvokeRequired){dgvovertop.BeginInvoke(new MethodInvoker(delegate{ReOverTopinOrder reovre;//= new ReOverTopinOrder();foreach (var item in e.Reovertopinorderlist){reovre = new ReOverTopinOrder();reovre.卷烟名称 = item.卷烟名称;reovre.已扫数量 = item.已扫数量;//reovertb_list.Add(reovre);//reovertb_list. bs.Add(reovre); } dgvovertop.DataSource= bs; //赋值控件自动更新 //var dt= dgvovertop.DataSource as BindingList<ReOverTopinOrder>;// dt.// reovertb_list = e.Reovertopinorderlist;// dgvovertop.Refresh();// reovertb_list.ResetBindings();// bdlst.AddingNew// dgvovertop.DataSource = mess;// reovertb_list.Add(reovre); }));}else{// dgvovertop.DataSource = mess; }// dgvovertop.Refresh();// reovertb_list.ResetBindings();// ControlHelper.ShowDgvControl1(dgvovertop);// reovertb_list = e.Reovertopinorderlist;}
一下是参考文章
http://www.cnblogs.com/monkeyZhong/p/4530795.html
转载于:https://www.cnblogs.com/zuochanzi/p/6247946.html
c# datagridview 中DataSource的使用总结相关推荐
- datagridview java_仅更新datagridview中的一个单元格
我正在编写一个Watch Window,它从 Serial Port 获取数据,并在 DataGridView 中显示变量info / value . 我有一个 Timer Event ,每隔500毫 ...
- 将Excel的数据导入DataGridView中(转)
https://www.cnblogs.com/lhxhappy/archive/2008/11/26/1341873.html /// <summary>/// 点击按钮导入数据/// ...
- 读取Excel表格数据到DataGridView中
其实想在datagridview中显示excel表格中的数据跟读取数据库中的数据没什么差别,只不过是创建数据库连接的时候连接字段稍有差别. private void btnShow_Click(obj ...
- C#读取Excel表格数据到DataGridView中和导出DataGridView中的数据到Excel
其实想在datagridview中显示excel表格中的数据跟读取数据库中的数据没什么差别,只不过是创建数据库连接的时候连接字段稍有差别. private void btnShow_Click(obj ...
- 怎么将excel数据导入到datagridview中
本人小白,想要实现EXCEL文件中的数据导入到datagridview中,EXCEL中的数据是多行多列,行数和列数不确定,如何实现导入到datagridview中显示,具体的界面如下: 两个butto ...
- 读取txt文件赋值到DataGridView中
先查看txt是每条信息之间是通过什么分割,我是通过换行符(\n)分割的, 然后再看每一条信息中字段是通过什么分割,我的字段是通过 tab键(\t)分割. 第一步 先获取到txt文件的路径: //获取绝 ...
- c#winform演练 ktv项目 在dataGridView中显示歌曲列表
c#winform演练 ktv项目 在dataGridView中显示歌曲列表 dgv控件绑定泛型数组 dgv对象.DataSource = 数据源 关于数据源,它可以是: 数据集中的某个表 泛型对象数 ...
- winfrom datagridview中DataGridViewTextBoxColumn的联动处理
这个问题有两种方法 第一种是用DataGridview中自带的DataGridViewTextBoxColumn 控件,第二种是动态添加combobox控件方法一:首先 窗体上拖拽一个 DataGri ...
- C#DataGridView中的常用技巧
只列出技巧部分,后面会有补充 0(最基本的技巧). 获取某列中的某行(某单元格)中的内容 this.currentposition = this.dataGridView1.BindingCont ...
最新文章
- java 程序启动界面_程序启动界面java代码
- “当前不会命中断点 还没有为该文档加载任何符号”解决方法
- Thread Safety in the Standard C++ Library
- 分享一些笔记本电脑日常保养技巧
- P1407-[国家集训队]稳定婚姻【tarjan,强连通分量】
- python变量自加一_Python个人练习项目 2-1
- Hive Hooks介绍
- c语言输入数字字母个数字是什么意思,请问这个用c怎么做:输入一串字符,分别统计其中数字和字母的个数...
- 杨玲 201771010133《面向对象程序设计(java)》第十六周学习总结
- js部分---表单验证;(含正则表达式)
- 利用计算机传播非法信息,非法侵入计算机信息系统罪如何处罚
- jQuery EasyUI 使用笔记
- 【虹科分享】什么是 RFC 2544?网络设备的性能基准测试方法
- C语言实现电脑关机程序
- 河海大学计算机专硕英语面试,河海大学翻译硕士(英语)考研复试流程
- 干货!详解服务器端和移动端性能测试指标
- iOS设置启动页并适配机型
- 百度地图通过经纬度坐标绘制移动路径轨迹
- python微信自动聊天小工具
- 同桌之间那些或暧昧或有趣的事