首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

DataGridView中的CheckBox值始终为真

是因为在默认情况下,DataGridView中的CheckBox列是只读的,无法通过用户交互来改变其值。如果需要实现可编辑的CheckBox列,可以通过以下步骤来实现:

  1. 在DataGridView中添加一个CheckBox列,并设置其ReadOnly属性为False,使其可编辑。
  2. 在DataGridView的CellFormatting事件中,将CheckBox列的值设置为对应数据源中的值。这样可以确保CheckBox列的值与数据源中的值保持一致。
  3. 在DataGridView的CellContentClick事件中,监听CheckBox列的点击事件。当用户点击CheckBox时,可以通过修改数据源中对应行的值来改变CheckBox的值。

以下是一个示例代码:

代码语言:txt
复制
// 添加CheckBox列
DataGridViewCheckBoxColumn checkBoxColumn = new DataGridViewCheckBoxColumn();
checkBoxColumn.HeaderText = "选择";
checkBoxColumn.Name = "checkBoxColumn";
checkBoxColumn.ReadOnly = false;
dataGridView1.Columns.Add(checkBoxColumn);

// 设置CellFormatting事件
dataGridView1.CellFormatting += DataGridView1_CellFormatting;

// 设置CellContentClick事件
dataGridView1.CellContentClick += DataGridView1_CellContentClick;

// CellFormatting事件处理方法
private void DataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
    if (e.ColumnIndex == dataGridView1.Columns["checkBoxColumn"].Index && e.RowIndex >= 0)
    {
        DataGridViewCheckBoxCell cell = dataGridView1.Rows[e.RowIndex].Cells["checkBoxColumn"] as DataGridViewCheckBoxCell;
        if (cell != null)
        {
            // 设置CheckBox列的值为对应数据源中的值
            cell.Value = dataGridView1.Rows[e.RowIndex].Cells["YourDataPropertyName"].Value;
        }
    }
}

// CellContentClick事件处理方法
private void DataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
    if (e.ColumnIndex == dataGridView1.Columns["checkBoxColumn"].Index && e.RowIndex >= 0)
    {
        DataGridViewCheckBoxCell cell = dataGridView1.Rows[e.RowIndex].Cells["checkBoxColumn"] as DataGridViewCheckBoxCell;
        if (cell != null)
        {
            // 修改数据源中对应行的值来改变CheckBox的值
            bool currentValue = (bool)cell.Value;
            dataGridView1.Rows[e.RowIndex].Cells["YourDataPropertyName"].Value = !currentValue;
        }
    }
}

这样,当用户点击CheckBox时,CheckBox的值会根据数据源中的值进行切换。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

as3ProgressEventbytesTotal始终0

遇到很奇怪问题,as3监听资源下载PROGRESS事件(ProgressEvent.PROGRESS),它bytesLoaded属性倒是正常,但bytesTotal属性却始终0,结果是导致了得到下载比率无穷大...(Infinity) evt.bytesLoaded / evt.bytesTotal  evt.bytesLoaded  / 0 在网上搜索了一下,有以下三种情况导致bytesTotal始终...0: 1、如果将进度事件调度/附加到某个 Socket 对象,则 bytesTotal 将始终 0,参考ProgressEvent事件对象>> 2、从php里动态加载内容导致bytesLoaded...始终0,解决方案>> 3、web服务器开启gzip导致,参考地址>> 因开发环境是在Windows下,而web服务器使用是nginx,然后查看了一下nginx.conf配置,发现gzip是开启...我用httpwatch抓取swf下载,发现其http header在gzip开启情况下还是有的,这种现象很难解释了,gzip对swf加载起到了什么影响?

88510

解决Djangocheckbox复选框问题

Django ,html 页面通过 form 标签来传递表单数据。 对于复选框信息,即 checkbox 类型,点击 submit 后,数据将提交至 view 函数。...补充知识:解决checkbox复选框选中传,不选中不传方案 解决checkbox复选框选中传,不选中不传方案 问题描述: 一个form表单结构是这样: ? 则页面显示结果是: ?...":"12","infoName":"名称2","fileIsOpen":"n"} ] 从数据明显看书fileIsOpen字段checkbox复选框选中则传是”o”,未被选中则传是”n”,其中这是错误数据...,因为被选中传是on,也就是说checkbox复选框选中传,不选中不传。...以上这篇解决Djangocheckbox复选框问题就是小编分享给大家全部内容了,希望能给大家一个参考。

4.4K20
  • C# 可视化程序设计机试知识点汇总,DBhelper类代码

    dt = DBHelper.getDataTable(sql1); //将返回结果绑定到DataGridView控件数据源 this.dataGridView1.DataSource = dt;...类查询方法,返回DataTable类型数据 DataTable dt = DBHelper.getDataTable(sql1); // DisplayMember显示文本,ValueMember...真实一般为主键 this.comboBox1.DisplayMember = "typeName"; this.comboBox1.ValueMember = "typeID" //将返回结果绑定到...dt = DBHelper.getDataTable(sql); //将返回结果绑定到DataGridView控件 this.dataGridView1.DataSource = dt; 选中DataGridView...{ //”=”号左边给全局变量typeID赋值, ”=”号右边获得选中第一行第一列转为string类型(列标号以数据库顺序为准) typeID = this.dataGridView1

    7.7K20

    DataGridViewCheckBoxColumn勾选框勾上了,Value却是false

    selectRows;         } 本文转载http://www.cnblogs.com/gossip/archive/2008/12/02/1346047.htmldatagridviewcheckbox...列,当修改checkbox状态时实时获得其状态    不知道大家有没有这样经验,当点击或者取消datagridviewcheckbox列时,比较难获得其状态是选中还是未选中,进而不好进行其它操作,...下面就列出它解决办法: 主要用到了datagridviewCurrentCellDirtyStateChanged和CellValueChanged两个事件 CurrentCellDirtyStateChanged...事件是提交对checkbox状态修改 CellValueChanged事件是当状态提交后,也就是单元格改变后做一些其它操作,这里是将checkboxtrue或false状态作为tooptiptext...(object sender, EventArgs e) { if (this.dataGridView1.IsCurrentCellDirty) //有未提交更//改 {

    2.2K10

    Google Earth Engine(GEE)——让点个数等于number返回布尔类型

    问题是这样,有时候我们明明看到结果是一致,但是为啥运算出来东西却不一样呢?我们可以具体看看到底是为啥,有朋友闻到了这样问题,我们可以具体看看这个问题: 这个结果是 True 我该怎么做?...]) Map.addLayer(points) var p=points.coordinates().size() print(p) print(p==ee.Number(2))  这里我们所需要用到就是我么判断是否相等算法...Returns: Object getInfo(callback) 从服务器上检索此对象。 如果没有提供回调函数,请求是同步进行。如果提供了一个回调函数,请求是异步进行。...返回这个对象计算。 参数。 this:computedobject (ComputedObject)。 计算对象实例。 callback(函数,可选)。 一个可选回调。...(ee.Number(2))==1) print(s1.eq(ee.Number(2)).getInfo()==1) 结果: 当然除了用上面判断是否相等之外,还可以使用下面的函数来进行判断:条件,真假情况是什么都可以

    9110

    C#——写一个控件库

    ISynchronizeInvoke, IWin32Window, IBindableComponent, IComponent, IDisposable { /* ... */ } 这里可以看到DefaultEvent...这里还要说明以下,Browsable只能决定某属性或事件在“属性”窗口内可见性,Browsable被置false属性和事件,仍可以在编辑器通过代码中使用。...是一个枚举(enum),这个枚举共有三个,分别是Always、Never和Advanced Always:该属性或方法在编辑器始终是可浏览 Never:该属性或方法始终不能在编辑器浏览 Advanced...无论怎么修改BtnName属性,编译时编译器都不会理睬这个,而是使用默认(这个例子里面就是button1)。...用于属性指定另一个“默认”等),如只是初步了解可以去查看VS从程序集 System.Windows.Forms.dll反射出各控件、控件属性、控件事件声明和摘要(就是声明上面的绿字),更详细描述可以去参考

    1.8K41

    DataGridView控件用法一:数据绑定

    在绑定到包含多个列表或表数据源时,只需将DataMember属性设置指定要绑定列表或表字符串即可。...一、非绑定模式 所谓非绑定模式就是DataGridView控件显示数据不是来自于绑定数据源,而是可以通过代码手动将数据填充到DataGridView控件,这样就为DataGridView控件增加了很大灵活性...与基于文本一起使用,在绑定到数字和字符串类型时自动生成 DataGridViewCheckBoxColumn 与boolean和checkState一起使用,在绑定到这些类型时自动生成...在绑定到包含多个列表或表数据源时,只需将DataMember属性设置指定要绑定列表或表字符串即可。...CheckBox列 /// /// 要创建列DataGridView ///

    3.9K20

    打印书树结点目标值路径_24

    思路: 递归遍历到叶子结点判断此时路径和是否等于目标值 需要注意点: 1.递归时候传入当前路径数组不能用原数组,不然该数组对象将是所有递归方法共有对象 2.同一getAllPath()方法内在判断左节点递归时候我们在...currentSum上和currList上加数据要去掉,避免对右节点判断时候传入造成影响 public ArrayList> FindPath(TreeNode...root.right, target, currentSum, new ArrayList(currList), pathList); } 不知道为什么这里没用排序也通过了测试用户,按照题目说我们要根据字典序打印所有路径...,其实这里就是要根据数组长度由大到小去打印路径,所以建议大家再return pathList前加一句Collections.sort(pathList,(list1,list2)->list2.size

    66420

    C#实例:datagridview单元格合并

    这是替C#微信交流群群友做一个小实例,目的就是在datagridview选择对应行以后,点击button后获取对应行ip,并执行相应操作,其实我觉得这样的话button没必要非放置到datagridview...但是为了满足群友需求,还是这么做了。 先看一下运行效果: ? 1....DataGridView 添加一列checkbox DataGridViewCheckBoxColumn newColumn = new DataGridViewCheckBoxColumn(); newColumn.HeaderText...= "选择"; dataGridView1.Columns.Add(newColumn); 这样添加列是放在最后一列,也许你希望它在其它列,例如第二列,那么可以: dataGridView1.Columns.Insert...()); } /// /// 将当前单元格更改提交到数据缓存,但不结束编辑模式,及时获得其状态是选中还是未选中

    4.9K10

    填补Excel每日日期并将缺失日期属性设置0:Python

    本文介绍基于Python语言,读取一个不同行表示不同日期.csv格式文件,将其中缺失日期数值加以填补;并用0对这些缺失日期对应数据加以填充方法。   首先,我们明确一下本文需求。...从上图可以看到,第一列(紫色框内)日期有很多缺失,例如一下子就从第001天跳到了005天,然后又直接到了042天。...接下来,我们使用pd.to_datetime方法将df时间列转换为日期时间格式,并使用set_index方法将时间列设置DataFrame索引。   ...,频率每天。   ...可以看到,此时文件已经是逐日数据了,且对于那些新增日期数据,都是0来填充。   至此,大功告成。

    24820

    每日一题:从链表删去总和连续节点

    从链表删去总和连续节点 难度中等 给你一个链表头节点 head,请你编写代码,反复删去链表由 总和 0 连续节点组成序列,直到不存在这样序列为止。...删除完毕后,请你返回最终结果链表头节点。 你可以返回任何满足题目要求答案。 (注意,下面示例所有序列,都是对 ListNode 对象序列化表示。)...,可以从每个结点出发,遍历它后缀和,如果它后缀和等于0了,说明当前遍历起始结点到令后缀和等于0这些结点是一组求和等于0连续结点,应当删除掉,但是不要delete,因为经过测试如果delete掉头结点后...Leetcode会报错,猜测可能和 Leetcode 测试用例链表实现有关系,所以删除掉方法就是cur->next = search->next,这里cur是起始结点前一个结点,search是使前缀和等于...为了避免头结点删除后返回新头结点困难,同时可以和起始结点前一个结点这一想法相配合,可以增加一个哨兵结点 newhead.

    1K30

    从链表删去总和连续节点(哈希表)

    题目 给你一个链表头节点 head,请你编写代码,反复删去链表由 总和 0 连续节点组成序列,直到不存在这样序列为止。 删除完毕后,请你返回最终结果链表头节点。...你可以返回任何满足题目要求答案。 (注意,下面示例所有序列,都是对 ListNode 对象序列化表示。)...对于链表每个节点,节点:-1000 <= node.val <= 1000....哈希表 建立包含当前节点前缀和sumKey,当前节点指针Value哈希表 当sum在哈希表存在时,两个sum之间链表可以删除 先将中间要删除段哈希表清除,再断开链表 循环执行以上步骤 ?...,0 newHead->next = head; ListNode *prev = newHead, *cur = head, *temp; unordered_map

    2.4K30

    Excel催化剂开源第23波-VSTO开发辅助录入功能关键技术

    在Excel催化剂几大辅助录入功能(数据验证保护、数据多级联动输入、关键词模糊智能匹配输入),用了一些customxmlPart技术来存储配置信息,同时在关键词模糊智能匹配输入,用了一个VSTO...输入过程动态控制下方DataGridView查找结果,用户可以按方向箭下上在结果中选择对应条目,再按Enter或Tab键确定内容录入。...,将自定义控件显示尺寸变大,之前有个关键点是隐藏了自定义控件后再显示,焦点不能顺利落到自定义控件搜索TextBox上,采用了迂回隐藏时不是隐藏,只是缩小成1*1像素大小,好像后来其他位置发现了更好解决方案...FormFastInput.CurrentSelectCell = Target; int fastInputID = GetFastInputID(Target);//找不到有交集时返回int最大...FormFastInput.CurrentSelectCell.Offset[1, 0].Select(); } } 结语 在VSTO框架下,有大量微软工程师我们搭建好底层技术

    1.3K10
    领券