`
qqchinaok
  • 浏览: 218285 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

c# winform 实现datagridview中datagridviewcheckboxcell的变通单一勾选

    博客分类:
  • java
阅读更多
    <p><span style="font-size: 10pt;">默认情况下 datagridviewcheckboxcolumn 是可以多选的<br>某些情况下 我们需要利用checkbox的可勾选及取消勾选的属性<br>来提供给用户选择项 同时需要勾选某项后 其他行的就取消勾选<br>如一组人员中 选择一个组长</span></p><p><span style="font-size: 10pt;">相关示例代码如下:</span></p><p><br><span style="font-size: 10pt;">//m_preroleid 之前组长的userid<br>//strcurrectchooseuserid 当前选择的组长的userid</span></p><p><span style="font-size: 10pt;">//datagridview绑定事件<br>private void initdatagridviewbind()<br>{<br> datatable dtnew = new datatable();<br> dtnew = globalstatic.gs_myws.monitorgetuseridinfo().tables[0];<br> //userid , userdesc , rolename<br> datacolumn colischecked = new datacolumn("ischecked");<br> colischecked.defaultvalue = false;<br> dtnew.columns.add(colischecked);</span></p><p><span style="font-size: 10pt;"> for (int i = 0; i &lt; dtnew.rows.count; i++)<br> {<br> datarow dr = dtnew.rows[i];<br> if (dtnew.rows[i]["userid"].tostring() == m_preroleid)<br> {<br> dtnew.rows[i]["ischecked"] = true;<br> strcurrectchooseuserid = m_preroleid;<br> break;<br> }<br> }<br> this.datagridview1.autogeneratecolumns = false;<br> this.datagridview1.datasource = dtnew;<br>}</span></p><p><span style="font-size: 10pt;">//<br>private void <span style="color: #0000ff;">datagridview1_cellmousedown</span>(object sender, datagridviewcellmouseeventargs e)<br>{<br> if (e.columnindex != -1 &amp;&amp; e.rowindex != -1)<br> {<br> if (((datagridviewtextboxcell)this.datagridview1.rows[e.rowindex].cells["rolename"]).value.tostring() == "组长")<br> {<br> if (((datagridviewtextboxcell)this.datagridview1.rows[e.rowindex].cells["userid"]).value.tostring() != m_preroleid)<br> {<br> messageinfoform.show("该客户端id已被其他客户端配置使用 不能再用于本客户端的配置");<br> }<br> else<br> {<br> if (e.columnindex != 0)<br> {<br> ((datagridviewcheckboxcell)this.datagridview1.rows[e.rowindex].cells["colischecked"]).value = true;//选择当前行的checkbox 并空置其他的行<br> for (int i = 0; i &lt; this.datagridview1.rows.count; i++)<br> {<br> if (i != e.rowindex)<br> {<br> ((datagridviewcheckboxcell)this.datagridview1.rows[i].cells["colischecked"]).value = false;<br> }<br> }<br> this.datagridview1.rows[e.rowindex].selected = true;<br> strcurrectchooseuserid = ((datagridviewtextboxcell)this.datagridview1.rows[e.rowindex].cells["userid"]).value.tostring();<br> }<br> else<br> {<br> if (((datagridviewcheckboxcell)this.datagridview1.rows[e.rowindex].cells["colischecked"]).value.tostring() == "true")<br> {<br> strcurrectchooseuserid = "";<br> ((datagridviewcheckboxcell)this.datagridview1.rows[e.rowindex].cells["colischecked"]).value = false;<br> }<br> else<br> {<br> strcurrectchooseuserid = ((datagridviewtextboxcell)this.datagridview1.rows[e.rowindex].cells["userid"]).value.tostring();<br> for (int i = 0; i &lt; this.datagridview1.rows.count; i++)<br> {<br> if (i != e.rowindex)<br> {<br> ((datagridviewcheckboxcell)this.datagridview1.rows[i].cells["colischecked"]).value = false;<br> }<br> }<br> ((datagridviewcheckboxcell)this.datagridview1.rows[e.rowindex].cells["colischecked"]).value = true;<br> }<br> }<br> }<br> }<br> else<br> {<br> if (e.columnindex != 0)<br> {<br> for (int i = 0; i &lt; this.datagridview1.rows.count; i++)<br> {<br> if (i != e.rowindex)<br> {<br> ((datagridviewcheckboxcell)this.datagridview1.rows[i].cells["colischecked"]).value = false;<br> }<br> }<br> ((datagridviewcheckboxcell)this.datagridview1.rows[e.rowindex].cells["colischecked"]).value = true;//选择当前行的checkbox 并空置其他的行<br> this.datagridview1.rows[e.rowindex].selected = true;<br> strcurrectchooseuserid = ((datagridviewtextboxcell)this.datagridview1.rows[e.rowindex].cells["userid"]).value.tostring();<br> }<br> else<br> {<br> if (((datagridviewcheckboxcell)this.datagridview1.rows[e.rowindex].cells["colischecked"]).value.tostring() == "true")<br> {<br> strcurrectchooseuserid = "";<br> ((datagridviewcheckboxcell)this.datagridview1.rows[e.rowindex].cells["colischecked"]).value = false;<br> }<br> else<br> {<br> strcurrectchooseuserid = ((datagridviewtextboxcell)this.datagridview1.rows[e.rowindex].cells["userid"]).value.tostring();<br> for (int i = 0; i &lt; this.datagridview1.rows.count; i++)<br> {<br> if (i != e.rowindex)<br> {<br> ((datagridviewcheckboxcell)this.datagridview1.rows[i].cells["colischecked"]).value = false;<br> }<br> }<br> ((datagridviewcheckboxcell)this.datagridview1.rows[e.rowindex].cells["colischecked"]).value = true;<br> }<br> }<br> }<br> }<br>}</span></p><p><span style="font-size: 10pt;">//上任组长显蓝色<br>//当前选择的组长显红色<br>//一般组员默认黑色<br>private void <span style="color: #0000ff;">datagridview1_cellformatting</span>(object sender, datagridviewcellformattingeventargs e)<br>{<br> if (((datagridviewtextboxcell)this.datagridview1.rows[e.rowindex].cells["rolename"]).value.tostring() == "组长")<br> {<br> if (((datagridviewtextboxcell)this.datagridview1.rows[e.rowindex].cells["userid"]).value.tostring() == m_preroleid)<br> {<br> this.datagridview1.rows[e.rowindex].cells["rolename"].style.forecolor = color.blue;<br> }<br> else<br> {<br> this.datagridview1.rows[e.rowindex].cells["rolename"].style.forecolor = color.red;<br> }<br> }<br>}</span></p> 
分享到:
评论

相关推荐

    基于C#的WinForm中DataGridView控件操作汇总

    "基于C#的WinForm中DataGridView控件操作汇总" 在C#的WinForm中,DataGridView控件是一种常见的控件,用于显示和编辑表格数据。下面将对DataGridView控件的操作进行汇总。 一、单元格内容的操作 在DataGridView...

    C# WinForm (DataGridViewComboBoxColumn 绑定)自己写的,最简单实例

    在C# WinForm开发中,`DataGridView`是一个非常常用的控件,用于展示表格数据。而`DataGridViewComboBoxColumn`是`DataGridView`的一个列类型,它允许用户在单元格中选择一个值,这个值通常是从下拉列表中选取。在这...

    c# winform ===datagridview 单元格合并

    c# winform ===datagridview 单元格合并 c# winform ===datagridview 单元格合并 c# winform ===datagridview 单元格合并

    C# Winform使用DataGridView的VirtualMode虚拟模式

    C# Winform使用DataGridView的VirtualMode虚拟模式。 有两种数据类型作为DataGridView的数据源,一种是DataTable,一种是List。有不明白的,欢迎加微信交流:VPAmway。

    C#_winform_DataGridView_checkbox复选框_实现单选效果

    以上就是如何在C# WinForm的`DataGridView`中实现复选框单选效果的详细步骤。通过监听事件、控制复选框状态以及合理配置`DataGridView`属性,你可以轻松地创建出满足需求的用户界面。记得在实际项目中根据具体需求...

    C# Winform DatagridView 分页及 全选/ 取消全选 功能

    在C# Winform开发中,`DataGridView`是一个非常重要的控件,用于展示表格数据。它提供了丰富的功能,包括数据编辑、排序、筛选等。在这个场景中,我们将关注两个特定的功能:分页和全选/取消全选。这些功能在处理...

    C#winform DataGridView checkbox复选框 实现单选效果

    C#winform DataGridView checkbox复选框 实现单选效果,系统默认的是界面中多选,下午没事,做个单选的效果,同时复习下datagridview的常用知识,包含dantGridVIew的常用操作内容,注意事项,代码有点乱,学习。

    C#winform datagridview 中显示HTML内容

    在C# WinForm开发中,`DataGridView`是一个常用的控件,用于展示表格数据。然而,标准的`DataGridViewTextBoxColumn`仅能支持基本的文本显示,无法直接处理HTML格式的内容。要实现`DataGridView`显示HTML内容,我们...

    c# winform datagridview 绑定集合中对象属性

    在C# WinForm开发中,`DataGridView`控件是一个常用的数据展示工具,它允许开发者将数据绑定到控件上,方便用户进行查看、编辑和操作。本资源主要讲解如何将集合中的对象属性绑定到`DataGridView`,从而实现数据的...

    C# Winform中DataGridView的操作

    ### C# Winform中DataGridView的操作 #### 概述 DataGridView 控件是Windows Forms应用程序中用于显示数据的强大工具。它能够方便地展示二维表格形式的数据,并提供了丰富的功能,如排序、筛选、编辑等。本文将...

    C# Winform Datagridview 分页和打印功能.pdf

    综上所述,文档涉及了C# Winform中DataGridView控件的分页和打印功能的实现方法,包括了分页逻辑的编写、PrintDocument类的使用、以及打印机的配置和打印预览的展示。掌握了这些知识点,开发者可以为Winform应用程序...

    c#winform datagridview打印整个列表的例子,源码奉上

    以上就是`DataGridView`在C# WinForm中打印的实现方式。通过这些步骤,你可以轻松地将`DataGridView`的数据转换为纸质形式。在实际开发中,可能还需要根据具体需求进行优化,例如添加页眉和页脚、处理大量数据的分页...

    C#WinForm中DataGridView表头下拉列表

    在C# WinForm开发中,`DataGridView`是一个非常重要的控件,用于展示数据表格。它提供了丰富的功能,如数据编辑、排序、筛选等。而"DataGridView表头下拉列表"的功能,是允许用户通过表头上的下拉列表来快速筛选或...

    c# winform datagridview 多行表头

    在C# WinForm开发中,`DataGridView`是一个非常重要的控件,它用于显示表格数据,类似于Excel电子表格。然而,标准的`DataGridView`控件不直接支持多行表头,这意味着默认情况下,表头只能显示一行文字。但在某些...

    c# winform datagridview联合access数据库 查询 删除 添加 生成报表

    在C# WinForm应用开发中,使用DataGridView控件与Access数据库进行交互是常见的数据管理方式。这个"datagridview access 数据库 c#"的示例("ComputerManage"项目)旨在教你如何实现查询、删除、添加数据以及生成...

    C# winform datagridview 里的下拉框中 既可以从下拉框里选择数据,也可以让客户自己手动往里输入数据,

    在C# WinForm开发中,`DataGridView`控件是一个常用的数据展示工具,它允许用户查看、编辑和操作表格数据。而在这个场景下,我们关注的是如何在`DataGridView`的某一列实现一个下拉框(ComboBox),这个下拉框既能...

    C# winform下的DataGridview分页控件源代码

    标题提到的“C# winform下的DataGridview分页控件源代码”正是这样一个解决方案。 首先,我们来看`Pager.Designer.cs`和`Pager.cs`这两个文件。`Designer.cs`文件通常包含Visual Studio自动生成的控件设计时元数据...

    C#Winform将DataGridView数据导出到Excel的两种方法

    在C# WinForm应用开发中,常常需要将DataGridView中的数据导出到Excel文件,以便于数据分析、存储或共享。本文将详细介绍两种实现这一功能的方法,这两种方法都经过了实际测试,确保可行。 **方法一:使用EPPlus库*...

    c# winform datagridview 中嵌套的combobox实现级联选择

    c# winform datagridview 中嵌套的combobox实现级联选择

Global site tag (gtag.js) - Google Analytics