当前位置: 首页 > news >正文

从事网站开发学什么专业/武汉大学人民医院地址

从事网站开发学什么专业,武汉大学人民医院地址,百度企业查询官网,宁德商城网站开发设计实现效果 点击checkBox1或者直接在第一列列表头点击即可实现 代码实现 我的datagridview叫dgv 我在datagridview已经默认添加了一个DataGridViewCheckBoxColumn,勾选时value为1,不勾选时value为0 第一种通过可视化拖动一个checkBox来实现 拖动组…

实现效果

点击checkBox1或者直接在第一列列表头点击即可实现
在这里插入图片描述

代码实现

我的datagridview叫dgv
在这里插入图片描述
我在datagridview已经默认添加了一个DataGridViewCheckBoxColumn,勾选时value为1,不勾选时value为0
在这里插入图片描述

第一种通过可视化拖动一个checkBox来实现

拖动组件,然后绑定事件
在这里插入图片描述
点击事件
在这里插入图片描述
在这里插入图片描述
事件代码:

		/// <summary>/// checkbox1的点击事件/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void checkSelectAll_CheckedChanged(object sender, EventArgs e){if (checkSelectAll.Checked){foreach (DataGridViewRow dgvRow in this.dgv.Rows){dgvRow.Cells["dataGridViewCheckBoxColumn1"].Value = true;}}else{foreach (DataGridViewRow dgvRow in this.dgv.Rows){dgvRow.Cells["dataGridViewCheckBoxColumn1"].Value = false;}}}

第二种,自定义checkBox,添加到列头

这种需要自己弄一个DataGridViewCheckBoxColumn
文件位置
在这里插入图片描述

详细代码
==DatagridviewCheckboxHeaderCell ==

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using WindowsFormsApp20230728.Properties;namespace WindowsFormsApp20230728
{//定义触发单击事件的委托public delegate void DatagridviewcheckboxHeaderEventHander(object sender, DatagridviewCheckboxHeaderEventArgs e);//定义继承于DataGridViewColumnHeaderCell的类,用于绘制checkbox,定义checkbox鼠标单击事件public class DatagridviewCheckboxHeaderCell : DataGridViewColumnHeaderCell{Point checkBoxLocation;Size checkBoxSize;bool _checked = false;Point _cellLocation = new Point();System.Windows.Forms.VisualStyles.CheckBoxState _cbState = System.Windows.Forms.VisualStyles.CheckBoxState.UncheckedNormal;public event DatagridviewcheckboxHeaderEventHander OnCheckBoxClicked;//绘制列头checkboxprotected override void Paint(System.Drawing.Graphics graphics,System.Drawing.Rectangle clipBounds,System.Drawing.Rectangle cellBounds,int rowIndex,DataGridViewElementStates dataGridViewElementState,object value,object formattedValue,string errorText,DataGridViewCellStyle cellStyle,DataGridViewAdvancedBorderStyle advancedBorderStyle,DataGridViewPaintParts paintParts){base.Paint(graphics, clipBounds, cellBounds, rowIndex,dataGridViewElementState, value,formattedValue, errorText, cellStyle,advancedBorderStyle, paintParts);Point p = new Point();Size s = CheckBoxRenderer.GetGlyphSize(graphics,System.Windows.Forms.VisualStyles.CheckBoxState.UncheckedNormal);p.X = cellBounds.Location.X +(cellBounds.Width / 2) - (s.Width / 2) - 1;//列头checkbox的X坐标p.Y = cellBounds.Location.Y +(cellBounds.Height / 2) - (s.Height / 2);//列头checkbox的Y坐标_cellLocation = cellBounds.Location;checkBoxLocation = p;checkBoxSize = s;if (_checked)_cbState = System.Windows.Forms.VisualStyles.CheckBoxState.CheckedNormal;else_cbState = System.Windows.Forms.VisualStyles.CheckBoxState.UncheckedNormal;CheckBoxRenderer.DrawCheckBox(graphics, checkBoxLocation, _cbState);}/// <summary>/// 点击列头checkbox单击事件/// </summary>protected override void OnMouseClick(DataGridViewCellMouseEventArgs e){var p = new Point(e.X + _cellLocation.X, e.Y + _cellLocation.Y);if (p.X >= checkBoxLocation.X && p.X <= checkBoxLocation.X + checkBoxSize.Width&& p.Y >= checkBoxLocation.Y && p.Y <= checkBoxLocation.Y + checkBoxSize.Height){_checked = !_checked;//获取列头checkbox的选择状态DatagridviewCheckboxHeaderEventArgs ex = new DatagridviewCheckboxHeaderEventArgs { CheckedState = _checked };var sender = new object();//此处不代表选择的列头checkbox,只是作为参数传递。应该列头checkbox是绘制出来的,无法获得它的实例if (OnCheckBoxClicked != null){OnCheckBoxClicked(sender, ex);//触发单击事件this.DataGridView.InvalidateCell(this);}}base.OnMouseClick(e);}}
}

==DatagridviewCheckboxHeaderEventArgs ==

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;namespace WindowsFormsApp20230728
{//定义包含列头checkbox选择状态的参数类public class DatagridviewCheckboxHeaderEventArgs : EventArgs{public DatagridviewCheckboxHeaderEventArgs(){CheckedState = false;}public bool CheckedState{get { return _CheckedState; }set { _CheckedState = value; }}private bool _CheckedState;}
}

实现位置,均在Form2类中
在这里插入图片描述

在这里插入图片描述
代码:

		public Form2(){InitializeComponent();//InitColumnInfo();#region  自定义组件开始//自定义组件实现var ch = new DatagridviewCheckboxHeaderCell();ch.OnCheckBoxClicked += new DatagridviewcheckboxHeaderEventHander(ch_OnCheckBoxClicked);var checkboxCol = this.dgv.Columns[0] as DataGridViewCheckBoxColumn;checkboxCol.HeaderCell = ch;checkboxCol.HeaderCell.Value = string.Empty;}

注意其中dgv.EndEdit(); 失去焦点操作,如果没有这个,你焦点所在checkBox不会勾选

		//去除datagridview列表头排序//    foreach (DataGridViewColumn item in dgv.Columns)//        item.SortMode = DataGridViewColumnSortMode.NotSortable;/// <summary>/// 单击事件/// </summary>private void ch_OnCheckBoxClicked(object sender, DatagridviewCheckboxHeaderEventArgs e){//失去焦点操作dgv.EndEdit();//Console.WriteLine(e.CheckedState.ToString());//选中事件操作if (e.CheckedState){for(int i = 0; i < dgv.Rows.Count; i++){dgv.Rows[i].Cells[0].Value = 1;}//foreach (DataGridViewRow dgvRow in this.dgv.Rows)//{//    dgvRow.Cells["dataGridViewCheckBoxColumn1"].Value = true;//}}else{for (int i = 0; i < dgv.Rows.Count; i++){dgv.Rows[i].Cells[0].Value = 0;}//foreach (DataGridViewRow dgvRow in this.dgv.Rows)//{//    dgvRow.Cells["dataGridViewCheckBoxColumn1"].Value = 0;//}}}

第三种,不添加DataGridViewCheckBoxColumn,直接以自定义的形式形成一列的checkBox

和第二种相比,就是把DataGridViewCheckBoxColumn从DataGridView中删除,然后public Form2()自定义组件实现代码改一下,其他都是一样的

也就是把这一串换成下面的即可

//自定义组件实现
var ch = new DatagridviewCheckboxHeaderCell();
ch.OnCheckBoxClicked += new DatagridviewcheckboxHeaderEventHander(ch_OnCheckBoxClicked);
var checkboxCol = this.dgv.Columns[0] as DataGridViewCheckBoxColumn;
checkboxCol.HeaderCell = ch;
checkboxCol.HeaderCell.Value = string.Empty;

if (!this.DesignMode){DatagridviewCheckboxHeaderCell cbHeader = new DatagridviewCheckboxHeaderCell();cbHeader.OnCheckBoxClicked += new DatagridviewcheckboxHeaderEventHander(ch_OnCheckBoxClicked);DataGridViewCheckBoxColumn checkboxCol = new DataGridViewCheckBoxColumn();checkboxCol.HeaderCell = cbHeader;checkboxCol.HeaderCell.Value = string.Empty;this.dgv.Columns.Insert(0,checkboxCol);
}

第三种实现的是类属于java面向对象编程的效果,第二种则是自定义组件进行添加的效果

参考文章

C# Winform中DataGridView的DataGridViewCheckBoxColumn CheckBox选中判断
关于Winform中DatagridView 表头checkBox全选选项框总结
DataGridView EndEdit()方法
c# winform获取gridview数据

精髓概括

C# 自定义控件实现ChackBox的Checked效果

  1. 创建一个类,继承自System.Windows.Forms.Control,实现自定义控件;

  2. 在类中重写OnPaint方法,绘制CheckBox的外观;

  3. 在类中重写OnMouseDown方法,实现鼠标点击时CheckBox的Checked状态的改变;

  4. 在类中定义一个Checked属性,用于获取或设置CheckBox的Checked状态;

  5. 在类中定义一个CheckedChanged事件,用于在CheckBox的Checked状态改变时触发;

  6. 在类中重写OnClick方法,实现CheckBox的Checked状态改变时触发CheckedChanged事件。

配套功能实现

Winform中DatagridView 加上 ContextMenuStrip 实现右键点击展示菜单,且可以获取数据(在没数据的地方不显示右键菜单,以及右键焦点进行改变),详情见该栏上一篇文章

相关文章:

Winform中DatagridView 表头实现一个加上一个checkBox,实现全选选项功能

实现效果 点击checkBox1或者直接在第一列列表头点击即可实现 代码实现 我的datagridview叫dgv 我在datagridview已经默认添加了一个DataGridViewCheckBoxColumn&#xff0c;勾选时value为1&#xff0c;不勾选时value为0 第一种通过可视化拖动一个checkBox来实现 拖动组…...

rust基础

这是笔者学习rust的学习笔记&#xff08;如有谬误&#xff0c;请君轻喷&#xff09; 参考视频&#xff1a; https://www.bilibili.com/video/BV1hp4y1k7SV参考书籍&#xff1a;rust程序设计语言&#xff1a;https://rust.bootcss.com/title-page.htmlmarkdown地址&#xff1a;h…...

剑指offer39.数组中出现次数超过一半的数字

这个题非常简单&#xff0c;解法有很多种&#xff0c;我用的是HashMap记录每个元素出现的次数&#xff0c;只要次数大于数组长度的一半就返回。下面是我的代码&#xff1a; class Solution {public int majorityElement(int[] nums) {int len nums.length/2;HashMap<Integ…...

spring技术栈面试题

1 Spring支持的事务管理类型有哪些&#xff1f;你在项目中使用哪种方式&#xff1f; Spring支持两种类型的事务管理&#xff1a; 编程式事务管理&#xff1a;这意味你通过编程的方式管理事务&#xff0c;给你带来极大的灵活性&#xff0c;但是难维护。声明式事务管理&#x…...

Android Glide MemorySizeCalculator计算值,Kotlin

Android Glide MemorySizeCalculator计算值,Kotlin for (i in 100..1000 step 50) {val calculator MemorySizeCalculator.Builder(this).setMemoryCacheScreens(i.toFloat()).setBitmapPoolScreens(i.toFloat()).setMaxSizeMultiplier(0.8f).setLowMemoryMaxSizeMultiplier(0…...

KEIL自带的Jlink怎么升级更换版本

问题背景 V4.20以上的keil安装包中都自带Jlink驱动包&#xff0c;即当你安装了KEIL后&#xff0c;Debug或Download就是用的安装KEIL时附带安装的Jlink版本。 那如果存在这种情况&#xff0c;你正在开发的芯片比较新&#xff0c;只有比较新的Jlink驱动软件才能支持&#xff0c…...

图的遍历之 深度优先搜索和广度优先搜索

深度优先搜索的图文介绍 1. 深度优先搜索介绍 图的深度优先搜索(Depth First Search)&#xff0c;和树的先序遍历比较类似。 它的思想&#xff1a;假设初始状态是图中所有顶点均未被访问&#xff0c;则从某个顶点v出发&#xff0c;首先访问该顶点&#xff0c;然后依次从它的各…...

Java学习笔记27——file类

File类 概述和构造方法概述构造方法 File的创建功能File类判断和获取功能File的删除功能 概述和构造方法 概述 在java.io下 具体的类 file是文件和目录路径名的抽象表示 文件和目录是可以封装成对象的对于file而言&#xff0c;其封装的并不是真正存在的文件&#xff08;可以…...

细胞——求细胞数量 C++详解

细胞——求细胞数量 C详解 求细胞数量题目描述输入格式输出格式样例样例输入样例输出 提示数据规模与约定 解法代码 求细胞数量 题目描述 一矩形阵列由数字 0 0 0 到 9 9 9 组成&#xff0c;数字 1 1 1 到 9 9 9 代表细胞&#xff0c;细胞的定义为沿细胞数字上下左右若还…...

【计算机视觉】关于图像处理的一些基本操作

目录 图像平滑滤波处理均值滤波计算过程python实现 高斯滤波计算过程python实现 中值滤波计算过程python实现 图像的边缘检测Robert算子计算过程python实现 图像处理腐蚀算子计算过程python实现 Hog&#xff08;梯度方向直方图&#xff09;特征计算流程&#xff1a;Hog的特征维…...

Android Animation Made Easy

原文链接 Android Animation Made Easy 动画在任何一个GUI系统中都是一个非常重要的设计元素&#xff0c;它可以让交互变得优雅&#xff0c;让界面变得炫酷&#xff0c;让操作变得更加的舒畅&#xff0c;让状态过渡变得更加的顺滑&#xff0c;对视觉效果有极大的提升&#xff…...

56从零开始学Java之与字符串相关的正则表达式

作者&#xff1a;孙玉昌&#xff0c;昵称【一一哥】&#xff0c;另外【壹壹哥】也是我哦 千锋教育高级教研员、CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者 前言 在上一篇文章中&#xff0c;壹哥给大家介绍了String字符串及其各种常用API方法&#xff0c;接下来壹哥…...

STM32 定时器自动重装载寄存器ARR带来的影响,ARPE0和1区别

ARR是啥 自动重载寄存器是预装载的。对自动重载寄存器执行写入或读取操作时会访问预装载寄存器。预装载寄存器的内容既可以直接传送到影子寄存器&#xff0c;也可以在每次发生更新事件 (UEV) 时传送到影子寄存器&#xff0c;这取决于 TIMx_CR1 寄存器中的自动重载预装载使能位 …...

vue 把<style scoped lang=“less“> 单独写成less文件再导入使用

1 npm npm install less-loader --save-dev2 创建一个单独的 Less 文件&#xff0c;例如 app.less <style scoped lang"less"> import url(./app.less); </style>3 在 app.less 文件中&#xff0c;编写 Less 样式代码 .container {width: 500px;margi…...

C++ 字符串

C 字符串 一、字符串两种写法 c语言的写法&#xff0c;可以延用 const char* str1 "huang"; char str2[] "Hello, World!";c写法 std::string str "Hello, World!";二、字符串计算长度 c语言的计算字符串长度&#xff0c;需要导入库 #inc…...

springboot 报错处理(长期更新 2023.8.10)

目录 一、HTTP 相关1.1、 数据传输方面1.1.1、 HttpMessageNotWritableException1.1.1.1、 springboot + stomp 场景一、HTTP 相关 1.1、 数据传输方面 1.1.1、 HttpMessageNotWritableException 1.1.1.1、 springboot + stomp 场景 报错内容: 使用 spring boot 和 stomp 服…...

Maven出现报错 ; Unable to import maven project: See logs for details错误的多种解决方法

问题现象; IDEA版本&#xff1a; Maven 版本 &#xff1a; 3.3.9 0.检查 maven 的设置 &#xff1a;F:\softeware\maven\apache-maven-3.9.3\conf 检查setting.xml 配置 本地仓库<localRepository>F:\softeware\maven\local\repository</localRepository>镜像…...

33_windows环境debug Nginx 源码-安装WSL

文章目录 前言安装 WSL先决条件启用 windows 更新功能真正安装 WSL133_windows环境debug Nginx 源码-安装WSL前言 虽然很想在纯 windows 环境,基于windows 的生态完成debug,但现实情况是 由于Nginx 源码编写的很多内容都和 linux 更加耦合;且不说使用 Visual-Studio 安装 C/…...

Java中的ZooKeeper是什么?

Java中的ZooKeeper是一个开源的分布式协调服务&#xff0c;它可以帮助我们管理分布式系统中的数据和配置信息。ZooKeeper是由Facebook开发的一个开源项目&#xff0c;它被广泛用于Facebook的分布式系统。 ZooKeeper的名称来源于动物园管理员&#xff08;Zookeeper&#xff09;…...

【数学】CF1796 C

Problem - 1796C - Codeforces 题意&#xff1a; 思路&#xff1a; 模拟一下样例可以发现一些规律 Code&#xff1a; #include <bits/stdc.h>#define int long longusing i64 long long;constexpr int N 1e6 10; constexpr int mod 998244353;void solve() {int l…...

SCI论文中字体和图片字体大小的要求

SCI论文中字体和图片字体大小的要求 文章目录 1. American Chemical Society(ACS)要求2. Nature要求 1. American Chemical Society(ACS)要求 https://www.zhihu.com/question/380612293?utm_id0 2. Nature要求...

react-dnd的使用

介绍&#xff1a; React DnD&#xff08;Drag and Drop&#xff09;是一个用于实现拖放功能的 React 拓展库。它提供了一组用于构建可拖动和可放置组件的高阶组件和钩子函数。 使用&#xff1a; 安装 react-dnd 和 react-dnd-html5-backend&#xff1a; npm install react-d…...

ELF program/section segment解析

ELF program/section segment解析 1 elf program segment1.1 elf program header1.2 ELF32和ELF64示例1.2.1 ELF32 program segment1.2.2 ELF64 program segment 1.3 elf program segment数据流向图 2 elf section2.1 eld section header2.2 ELF32和ELF64示例2.2.1 ELF32 secti…...

【golang】库源码文件

库源码文件是不能被直接运行的源码文件&#xff0c;它仅用于存放程序实体&#xff0c;这些程序实体可以被其他代码使用&#xff08;只要遵从Go语言规范的话&#xff09;。 这里的“其他代码”可以与被使用的程序实体在同一个源码文件内&#xff0c;也可以在其他源码文件&#x…...

网络安全(黑客)常用工具(附配套资料+工具安装包)

几十年来&#xff0c;攻击方、白帽和安全从业者的工具不断演进&#xff0c;成为网络安全长河中最具技术特色的灯塔&#xff0c;并在一定程度上左右着网络安全产业发展和演进的方向&#xff0c;成为不可或缺的关键要素之一。 话不多说&#xff0c;2022年全球白帽常用工具排行榜…...

WebDAV之π-Disk派盘+Joplin

Joplin是一个优秀的开源笔记,可以组织到笔记本中的大量笔记和文本编辑器中进行复制,标记和修改。支持Evernote的笔记直接导入到Joplin应用程序中。Joplin还支持各种云服务同步,包括Dropbox、OneDrive、WebDAV或文件系统,方便对其进行检查、备份和移动。该应用程序可用于Win…...

Unity-UGUI优化策略

界面出栈规则&#xff1a; 界面目录导航、策划界面回退需求造成界面套娃问题&#xff0c;夹带一系列层级问题&#xff0c;应该和策划进行友好沟通&#xff0c;避免界面不合理的出栈入栈规则 overdraw&#xff1a; 尽量减少同屏 半透明物体渲染 Unity 之 UGUI优化&#xff08;…...

【练】Linux中用共用体(联合体)的方式,判断本机的字节序

方法一&#xff1a;共用体 #include <stdio.h> union Byte {unsigned int a;char c; }; int main(int argc, const char *argv[]) {union Byte endianness;endianness.a0x87654321;printf("endianness.c%#x\n",endianness.c); if(0x21 endianness.c)pr…...

WebRTC | 音视频直播客户端框架

端到端通信互动技术可分解为以下几个技术难点&#xff1a;客户端技术、服务器技术、全球设备网络适配技术和通信互动质量监控与展示技术。 一、音视频直播 音视频直播可分成两条技术路线&#xff1a;一条是以音视频会议为代表的实时互动直播&#xff1b;另一条是以娱乐直播为代…...

flutter开发实战-实现marquee根据文本长度显示文本跑马灯效果

flutter开发实战-实现marquee文本跑马灯效果 最近开发过程中需要marquee文本跑马灯效果&#xff0c;这里使用到了flutter的插件marquee 效果图如下 一、marquee 1.1 引入marquee 在pubspec.yaml中引入marquee # 跑马灯效果marquee: ^2.2.31.2 marquee使用 marquee使用也是…...