项目中需要一个这样的DataGridView(字段不同):

1. DataSource绑定到一个DataTable上,这里假设DataTable有两个字段:ID, Name。

2. 第一列为CheckBox,让用户来选,提交的时候就提交CheckBox选中的。

我开始的时候是先在DataGridView初始化的时候就加入一列CheckBox,然后再把DataSource赋为那个DataTable,这样一来,显示是正常的,CheckBox也可以选,但是当我点击列头(是这样说的么)来排序的时候,原来选中的那些CheckBox又都恢复初始化值了,然后就开始了一个一个检查DataGridView, DataGridViewRow, DataGridViewCheckBoxCell....的无数属性,事件,方法看看有没有什么解决方法,郁闷的几个小时过去了。最后在MSDN中看到DataGridView不会维护未绑定的列的数据,也就是说排序的时候重新刷新了DataSource,而那些保存了哪些CheckBox的数据都丢掉了。

原因找到了,然后就好办了,加一列到那个DataTable中去然后再绑定到DataSource上,另外初始化的时候不要在加入那列CheckBox,绑定的时候会自动加入。贴一小段,大概就这个意思。

Dim dt As New DataTable
dt.Columns.Add("IsSelected", System.Type.GetType("System.Boolean"))
dt.Columns.Add("ID")
dt.Columns.Add("Name")
Dim dr As DataRow = dt.NewRow()
dr("IsSelected") = True
dr("ID") = "1"
dr("Name") = "Tracy"
dt.Rows.Add(dr)
dr = dt.NewRow()
dr("IsSelected") = True
dr("ID") = "11"
dr("Name") = "Yao"
dt.Rows.Add(dr)
DataGridView1.DataSource = dt

转载于:https://www.cnblogs.com/no7dw/archive/2009/07/28/1533350.html

DataGridView加入CheckBox列 (VB)相关推荐

  1. C# winform单元格的formatted值的类型错误 DataGridView中CheckBox列运行时候System.FormatException异常

    C# winform单元格的formatted值的类型错误 DataGridView中CheckBox列运行时候System.FormatException异常 参考文章: (1)C# winform ...

  2. 【转】datagridview的checkbox列,当修改checkbox状态时实时获得其准确状态值

    不知道大家有没有这样的经验,当点击或者取消datagridview的checkbox列时,比较难获得其状态是选中还是未选中,进而不好进行其它操作.网上方法有不少可是总是效果差强人意. 下面就列出它的个 ...

  3. C# 怎样判断 datagridview 中的checkbox列是否被选中

    开发(winform)时碰到这个问题 C# 怎样判断 datagridview 中的checkbox列是否被选中,错误原因都C#对类型判断相当严格,为了避免大家以后多走弯路,把我的思路和大家说一下,希 ...

  4. C1DataGrid for Silverlight 修改 CheckBox 列外观

    在C1DataGrid for Silverlight中,如果包含DataGridCheckBoxColumn类型的列,你会发现该列中单元格处于非编辑状态时,CheckBox都被显示成灰色. 本文也将 ...

  5. DataGridView的DataGridViewComboBoxColumn列点击一次

    DataGridView的DataGridViewComboBoxColumn列点击一次 Winform中的DataGridView数据绑定控件有时会用到ComboBox列,想要显示ComboBox列 ...

  6. c#中datagridview里checkbox的使用方法[转]

    c#中datagridview里checkbox的使用方法[转] view plaincopy to clipboardprint? 1.属性设置checkboxcolumn     name:cb_ ...

  7. EditorGridPanel 中使用checkbox列,并包含afterEdit事件

    在EditorGridPanel中无法使用默认的CheckBox控件,因此采用第三方扩展的控件实现, 以下是Ext.grid.CheckColu扩展类: Ext.grid.CheckColumn = ...

  8. C# WinForm DataGridView 给标题列增加序号及格式化某个字段

    DataGridView 给标题列增加序号 private void dataGridView1_DataBindingComplete(object sender, DataGridViewBind ...

  9. datagridview删除第一列空白

    datagridview删除第一列空白: dataGridView1.RowHeadersVisible = false; 删除最后一行空白: 1.dataGridView1.AllowUserToA ...

最新文章

  1. spark1.1.0学习路线
  2. System tuning中经常用到的一些Tcode
  3. php伪静态url运用,再谈 THINKPHP 伪静态url(URL访问模式)的设置
  4. C++:_ASSERTE(__acrt_first_block == header)
  5. 可以发外链的网站_可以发外链的地方有哪些?-top推
  6. The Economist经济学人是如何使用Go语言构建内容平台微服务架构的?
  7. 如何用阿里云服务器建立一个wordpress网站
  8. LINQ to XML:如何读写XCData
  9. Acer e5-571g 完美黑苹果10.13
  10. 谷歌浏览器如何设置internet选项
  11. html如何转换为母版页,如何在模板中指定/或取消母版页
  12. CSS盒子模型(内容区、边框、内外边距)
  13. 实验四+126+黄晟
  14. Python——超级鹰打码平台实现selenium对b站的自动化登陆
  15. 《农业机械学报》论文的格式要求
  16. c语言中用户验证程序,C语言用户登录系统账户密码比对
  17. 网络压线钳的实验报告_RJ45网线制作实验报告
  18. 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
  19. [数据分析] 决策树算法:决策树的概念
  20. m基于MATLAB的FM调制收音机仿真实现

热门文章

  1. oracle 无法弹出图形界面,Xshell 5 不能弹出GUI 图形界面问题
  2. 策略模式和工厂模式的区别_java设计模式之状态模式,策略模式孪生兄弟
  3. mysql datetime 转date_详解MySQL如何按表创建千万级的压测数据
  4. PyTorch教程(九):损失函数与Loss的梯度
  5. docker 安装mysql 5.7
  6. docker 安装openmaptiles
  7. 12 款 Linux 终端推荐
  8. FP、FN、TP、TN、精确率(Precision)、召回率(Recall)、准确率(Accuracy)评价指标详述
  9. redis java应用_Java+Redis应用(第一章)
  10. python启动mysql_Python操作MySQL