
Winform相关教程
文章平均质量分 59
这是关于WinForm和DevExpress控件的使用,降低学习门槛,包含项目源码和保姆级教程专栏;方便学习人员直接拿去快速上手实现功能,着眼于解决业务需求,提高开发效率,专栏的内容全部测试可用,可直接用于项目。
牛奶咖啡13
【目前在找工作,期望工作地为昆明,有意向的企业可私信我,内推更好】
你不知道你不知道[你永远不会去学习你不知道其存在的东西]
别人的故事在好,那也是别人的;人活成什么样子,得自己定!
展开
-
Windows系统下制作程序安装包的工具和安装包制作保姆级教程
如何将开发出来的所有软件项目文件内容打成一个安装包,方便客户拿到安装包后和正常程序一样点击后就可以自动安装部署,且可以在桌面直接生成程序的快捷方式,方便客户直接使用。原创 2024-11-23 13:46:49 · 753 阅读 · 0 评论 -
下载.NET的反编译调试工具dnSpy和简易使用
dnSpy 是一个.NET 程序集的反编译编辑器【即:没有可用的源代码,也可以使用它来编辑和调试现有的程序集】;调试.NET 和Unity的程序集①不需要源代码即可设置断点并单步执行任何程序集;②变量窗口支持将变量(如解密的字节数组)保存到磁盘或在十六进制编辑器(内存窗口)中查看它们;③可以调试动态模块(但由于 CLR 的限制,不能调试动态方法);④输出”窗口记录各种调试事件,默认情况下显示时间戳:)⑤可以调试在运行时自行解密的程序集,dnSpy 将使用内存映像。原创 2023-07-15 22:56:26 · 3333 阅读 · 0 评论 -
C#使用跨平台的PdfSharpCore开源库生成PDF文件
在进行项目开发中,需要将C#程序的一些文本内容导出为PDF文件(能够将文本自动分行分页),并且要求这个生成PDF文件的程序是可跨平台的;①将程序的文本内容导出为PDF文件;②能够将文本内容自动分行分页【且可添加页眉、页脚、页码、水印、图片或给PDF文件加密】;②生成PDF的C#程序需要跨平台(使用.netcore);.netcore下开源可用的PDF库是【PdfSharpCore】原创 2023-07-13 21:57:29 · 2657 阅读 · 0 评论 -
C#实现对IIS网站和应用程序池实时监测(网站停止后自动重启)
在我们的日常运维中,可能会遇到业务网站在运行一段时间后由于某些不确定因素而停止运行,导致业务功能受影响,而此时只要我们重启服务又能够正常运行了,在我们还没有完全排查从根本上解决问题前,需要一个临时的方法来救场(即:当发现业务网站停止后能够自动重新启动,减少对业务的影响,留下足够的时间来排查问题分析)。原创 2023-03-17 14:12:37 · 2234 阅读 · 0 评论 -
实时监测文件夹且根据条件自动删除指定文件夹下文件
当我们的项目开发完成部署到生产环境使用后,为了便于后续的运维工作(对问题及时排查和解决)在项目中编写了一些关于对异常情况或者实时数据自动生成对应的日志文件等内容,但是随着时间的流逝,这些日志文件内容会越来越多,自然占用的存储空间会不断增加,而我们自己手动去删除又会很麻烦,此时我们就需要一个工具来自动清理(最好是能够指定删除的文件类型、指定删除的时间范围、或者根据指定的文件大小去删除等)。原创 2023-03-14 20:59:28 · 783 阅读 · 0 评论 -
C#通过窗体命名空间和名称创建窗体且打开
在进行Winform项目的开发过程中,需要实现通过窗体的命名空间和名称来创建该窗体,且打开该窗体;适用于Winform项目的菜单界面配置功能。①可以使用反射或程序集(根据窗体的命名空间和名称创建出该窗体的实例);②编写打开窗体方法;原创 2023-03-02 09:34:32 · 698 阅读 · 0 评论 -
C#实现定时滚动表格内容
{//自定义行高{//指定数据行的行高(比如:35)}}注意:最后需要启动定时器才会有效果C#中Forms.Timer、Timers.Timer、Threading.Timer的用法分析t=M85BC#中Forms.Timer、Timers.Timer、Threading.Timer的用法分析https://blog.youkuaiyun.com/xiaochenXIHUA/article/details/106207999?原创 2022-10-03 10:55:02 · 2285 阅读 · 0 评论 -
DevExpress中SearchGridLookUpEdit 控件实现复选框多选操作
实现对SearchGridLookUpEdit组件显示多个内容,且可以单选、多选内容,可以指定显示的内容,实际使用的内容;原创 2022-08-06 11:52:33 · 3113 阅读 · 0 评论 -
DevExpress中针对指定列进行百分比转换
目前使用DevExpress控件开发的项目中,需要对表格(GirdView)的指定列或多列内容进行转为百分比显示(比如:将0.39转为39%以此类推)。原创 2022-08-03 18:30:00 · 1201 阅读 · 0 评论 -
C#中关于DevExpress的常用操作和帮助类项目工程内容说明
该示例工程主要实现的功能为①对表格的常用操作【如加载数据、可修改标题头(或指定行、列)背景、颜色、名称、也可以任意修改表格内容、获取指定列等内容】;②实现对实体数据进行操作【如将实体类转为DataTable、将DataTable转为实体、复制DataTale、给DataTable添加字段、添加列、添加行等内容】。③实现创建线性图表(如单线、双线图表、可放大缩小、导出图表);④对表格实现复合表头设计(可以设计多个表头、固定表格列、修改表头名称、背景颜色、设置宽度、自适应等);...原创 2022-07-31 16:26:20 · 1894 阅读 · 1 评论 -
Winform中实现窗体控件适配(自适应窗体)布局_通过C#代码方式
至此通过使用C#代码实现窗体控件适配(自适应窗体)布局下过完成,运行项目即可查看效果。③在窗体变化时获取当前窗体的宽度和高度,然后遍历窗体控件进行设置。①在窗体初始化时先获取窗体的宽度和高度,然后;②遍历窗体控件进行初始化设置缩放位置;......原创 2022-07-17 11:55:00 · 19790 阅读 · 10 评论 -
C#实现获取DevExpress中GridView表格进行过滤或排序后的数据
当前我们的业务中需要获取对DevExpress中GridView表格进行过滤或排序后的数据内容。 直接获取GirdView表格的数据内容是最开始绑定的内容,不会跟随表格控件过滤或排序后而改变;我们可以直接遍历表格的内容填充到新DataTable中返回。...原创 2022-07-03 22:24:07 · 2440 阅读 · 0 评论 -
C#实现给DevExpress中GridView表格指定列添加进度条显示效果——代码实现方式
在我们使用Winform配合DevExpress进行开发表格时,表格中的涉及到百分比数据的内容除了显示百分比的数字内容外,还希望搭配显示进度条效果(且低于百分之60的内容用红色表示不合格,高于百分之60的用绿色表示),这样百分比的显示效果更加清晰直观。 2.3、使用给指定单元格绘制进度条方法 注意:在使用给指定单元格绘制进度条方法时(如果数字都是小于1的那么警告值也是需要小于1;如果是大于1的则按照需要设置即可)。三、相关内容3.1、给单元格设置百分比上面这个代码实现原创 2022-06-25 16:15:21 · 1771 阅读 · 2 评论 -
给RDLC报表文件添加复选框效果
一、业务需求业务部分需要在RDLC报表中根据条件添加勾选或不勾选的复选框效果,方便报表更加直观简洁。二、实现效果三、实现方法RDLC文件报表数据加载、报表加载复选框效果项目工程https://download.youkuaiyun.com/download/xiaochenXIHUA/854877763.1、RDLC报表的表达式《1》IIF表达式//IIF的字段表达式=IIF(结果是布尔值的判断条件,判断条件结果为true的结果,判断条件结果为false的结果)//示例1——以.原创 2022-05-28 22:45:12 · 758 阅读 · 2 评论 -
代码加载RDLC文件报表时是否显示指定行或列内容
一、实现效果1.1、业务需求 在使用C#代码加载RDLC文件报表时根据条件设置显示或隐藏指定的行或列内容。1.2、业务实现效果C#代码加载RDLC文件报表且是否显示指定行或列内容项目工程https://download.youkuaiyun.com/download/xiaochenXIHUA/85465245大概的实现效果如下图所示:二、实现方法2.1、添加显示或隐藏的参数打开RDLC文件报表然后在报表数据中添加参数:比如我这里想添加的参数为:IsShowParaRow、IsSh..原创 2022-05-26 13:33:58 · 649 阅读 · 0 评论 -
修改RDLC文件报表的数据集(或给rdlc报表新增字段)(或解决rdlc报表中文显示乱码)
一、问题描述设计好了【Report1.rdlc】报表内容,但是后续需要对报表的内容进行修改(比如:需要增加一些字段,然后在报表中使用)。二、问题分析①首先需要修改rdlc文件的数据集;②刷新rdlc文件中的数据集信息;三、实现步骤3.0、使用RDLC文件开发报表使用RDLC文件开发报表https://blog.youkuaiyun.com/xiaochenXIHUA/article/details/122281087?ops_request_misc=%257B%2522request%原创 2022-05-23 15:01:17 · 2544 阅读 · 1 评论 -
怎样设置WinForm程序的公司名称、产品名称、版本信息
一、实现效果实现在.NET Framework的Winform程序里面设置程序的公司名称、产品名称、版本信息内容;且在程序里面展示对应的信息内容。二、实现思路①在启动程序里面设置程序的信息②获取程序信息显示在程序中三、实现操作3.1、设置程序的信息3.2、获取设置的程序信息public class VersionHelper { //获取路径 public static string path {原创 2022-04-08 23:50:37 · 2227 阅读 · 0 评论 -
程序报错“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序”解决办法
一、问题描述 运行程序时,读取.mdb文件的内容时,直接报错【未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序】二、问题分析 本地电脑安装了Office全套,也可以使用Access数据库打开查看.mdb文件内容,但是报错是因为电脑没有安装【 数据库引擎可再发行程序包】,需要安装该引擎包即可。三、解决办法3.1、查看自己电脑Windows系统版本3.2、根据Windows系统版本下载对应的引擎包我这里查看自己系统因为是64位的所以选...原创 2022-04-08 08:32:19 · 36857 阅读 · 3 评论 -
将数字转为ASCII码
一、实现效果原创 2022-03-21 21:45:08 · 8491 阅读 · 0 评论 -
计算机的基础知识---位(bit)、字节(byte)、编码(Encoding)和大小端
一、基础知识简介1.1、位(bit)位(bit):是计算机的最小数据存储单位(即:由二进制数字0和1表示)可用小写的b表示; 现代计算机存储和处理的信息以二值信号表示。这些微不足道的二进制数字,或者称为位 (bit);二值信号能够很容易地被表示、存储和传输。例如:可以表示为穿孔卡片上有洞或无洞、导线上的高电压或低电压,或者顺时针或逆时针的磁场。对二值信号进行存储和执行计算的电子电路非常简单和可靠。1.2、字节字节(Byte):是计算机用于计量存储容量的最小单位(一种计量单位)..原创 2022-03-20 22:44:37 · 3170 阅读 · 0 评论 -
Winform中实现在静态方法中调用主窗体的方法或组件
一、实现效果①在另一个窗体操作主窗体的控件显示数据;②在另一个窗体获取主窗体的数据信息;③在另一个窗体调用主窗体的方法;二、实现步骤2.1、在被操作的窗体上添加该窗体的静态窗体 //1-创建该窗体的静态类 //基础 public static 被操窗体的名称 窗体别名= null; //示例 public static UIComponetForm uIComponetForm = null;2原创 2022-03-17 12:26:40 · 2269 阅读 · 0 评论 -
C#打开指定目录、打开指定目录且选中指定文件、打开指定文件
一、实现内容1.1、实现的功能想要实现:①打开指定的目录;②打开指定的目录且选中指定文件;③打开指定文件1.2、实现的效果二、实现操作 /// <summary> /// 打开目录 /// </summary> /// <param name="folderPath">目录路径(比如:C:\Users\Administrator\)</param>原创 2022-03-14 10:47:16 · 8314 阅读 · 0 评论 -
C#实现给DevExpress中GridView表格创建指定的空白行、然后将Excel中选中的数据粘贴到GridView表格中
一、实现效果测试数据内容如下:二、实现方法2.1、给GridView表格创建指定的空白行 #region 创建空白行 /// <summary> /// 创建指定空白行数 /// </summary> /// <param name="gridControl"></param> /// <param name="gridView".原创 2022-03-11 23:08:18 · 2085 阅读 · 0 评论 -
Winform中的关闭和退出
一、Winfrom中的关闭1.1、是否显示关闭右上角的最大最小关闭按钮 public partial class UIComponetForm : DevExpress.XtraEditors.XtraForm { //窗体构造 public UIComponetForm() { InitializeComponent(); //是否显示窗体右上角的关闭按钮(False表示关闭)原创 2022-03-03 17:17:57 · 4107 阅读 · 0 评论 -
C#中的动态类型(Dynamic)
一、动态类型简介 .NET 4 中引入了动态类型。动态对象(dynamic)使您可以处理诸如 JSON 文档之类的结构内容,这些结构的组成可能要到运行时才能知道【该类型是一种静态类型,但类型为dynamic的对象会跳过静态类型检查。 大多数情况下,该对象就像具有类型object一样。 在编译时,将假定类型化为dynamic的元素支持任何操作。 因此,不必考虑对象是从 COM API、从动态语言(例如 IronPython)、从 HTML 文档对象模型 (DOM)、从反射还是从程序中...原创 2022-02-25 17:18:00 · 17031 阅读 · 0 评论 -
C#的反射
一、反射介绍 反射:指程序可以访问、检测和修改它本身状态或行为的一种能力(即:审查元数据并收集关于它的类型信息的能力)①元数据(编译以后的最基本数据单元)可以理解为一大堆的表,当编译程序集或者模块时,编译器会创建一个类定义表,一个字段定义表,和一个方法定义表等。②反射则提供了封装程序集、模块和类型的对象(程序集包含模块,而模块包含类型,类型又包含成员【成员--->类型--->模块--->程序集】)。③可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象..原创 2022-02-22 11:55:10 · 11960 阅读 · 6 评论 -
DevExpress中实现给GridControl下的GridView表格列设置是否可以编辑数据
一、实现效果①实现可以编辑表格的任意行、任意列的单元格数据;②实现可以编辑表格任意行,指定单列的单元格数据;③实现可以编辑表格任意行、指定多列的单元格数据;④关闭表格单元格数据的编辑功能。二、实现方法/**** Title:"Winform" 项目* 主题:Winform的UI帮助类* Description:* 功能: * GridView表格操作:* ①设置表格是否可以编辑*原创 2022-02-17 16:54:59 · 2936 阅读 · 2 评论 -
获取Winform窗体或Panel下包含的所有控件、根据控件名称获取指定控件
一、实现效果 在 Winform中窗体(Form)就像一个容器,可以包含所有的控件(比如:panel、button、textedit等控件);如果把窗体看做是 Winform 中最大的容器,那么Panel可以看做第二,Panel控件则是专门用于界面的排版布局,相当于 Web 开发中的层(div),几乎所有控件都可以包含到 Panel 中,包括窗体。①获取到指定窗体下的所有控件;②获取到指定Panel下的所有控件;③获取到窗体下的所有TextEdit类型控件;④根据控件名称获取到该控..原创 2022-02-16 11:52:29 · 10608 阅读 · 0 评论 -
使用FileSystemWatcher 实现对指定路径下指定文件的监视
一、问题描述我们想要实现实时监测指定路径下的指定文件内容,但是这些文件的更改是没有规律的,如果单独开启一个线程间隔500毫秒去监测读取进行后续的业务处理,这样的话就会存在IO问题和出现多无效的操作,不可取。二、问题分析 C#中存在【FileSystemWatcher 】类,可实现侦听文件系统更改通知,并在目录或目录中的文件发生更改时引发事件,这样就能精准触发操作执行相应的业务逻辑。FileSystemWatcher的知识点:FileSystemWatcher属性 序号 名称..原创 2022-01-26 22:37:54 · 970 阅读 · 0 评论 -
使用RDLC文件开发报表
一、实现效果实现自定义的报表内容(自定义报表的显示格式内容),根据数据自动填充,效果如下:二、实现思路①创建报表【设置报表的大小和根据自己需求设计样式和内容】②添加ReportViewer组件【编写加载报表方法】三、实现方法3.0、VS2019中安装ReportViewer组件在VS2019中安装ReportViewer组件https://blog.youkuaiyun.com/xiaochenXIHUA/article/details/122268610?spm=1001.2014.300原创 2022-01-02 23:12:50 · 3095 阅读 · 6 评论 -
在VS2019中安装ReportViewer组件
一、实现效果可以在VS2019中的工具箱中使用【ReportViewer】组件。二、实现思路①添加【Microsoft RDLC Report Designer】的扩展包;②在项目中添加【Microsoft.ReportingServices.ReportViewerControl.WinForms】的组件包;三、实现方法3.1、添加【Microsoft RDLC Report Designer】的扩展包3.2、 给项目添加【ReportViewer】组件选中项目原创 2022-01-01 17:08:44 · 2429 阅读 · 2 评论 -
DevExpress中自动、手动调整GridView的列宽度
一、实现效果二、实现方法2.1、手动设置GridView的列宽度 /// <summary> /// 手动设置表格的宽度 /// </summary> /// <param name="gridView">gridView表格控件</param> /// <param name="startColumnIndex">开始列的索引</param>原创 2021-11-09 11:54:07 · 4522 阅读 · 0 评论 -
C#实现对DataTable移动行位置
一、想要实现的效果想要实现将原表内容的:①29、30行内容移动到原表08行后面;②27、28行内容移动到原表18行后面;二、实现方法 //调整数据行位置 private void AdjustDataRowPos(ref DataTable newDataTable) { int columnCount = newDataTable.Columns.Count; /*调整新增的线位置*原创 2021-11-09 10:36:49 · 2309 阅读 · 0 评论 -
DevExpress中使用navigationPane、navBarControl实现导航栏
一、实现效果二、原创 2021-10-29 10:01:37 · 4779 阅读 · 0 评论 -
安装使用反编译工具ILSPY
一、ILSPY简介1.1、ILSPY介绍 ILSPY是一款开源、免费的、且适用于.NET平台反编译【C#语言编写的程序和库(.dll)内容】工具;可以集成在Visual Studio 开发工具中,能够十分快捷方便的查看源代码内容。1.2、ILSPY使用方法 在项目中选中需要查看的方法,然后右键选择【用ILSPy打开代码】即可查看源代码内容。二、给Visual Studio 2019安装ILSpy工具2.1、下载安装到Visual Studio 2019上的ILSpy...原创 2021-10-26 11:15:47 · 66378 阅读 · 3 评论 -
DevExpress中实现相同数据行合并为一列展现且内容换行显示
一、实现效果二、实现思路2.1、需要给合并多行内容为一列的多行添加相同的数据①给多行都添加相同的数据;②添加的数据需要包含换行符【"\r\n"】;③替换算法如下://替换字符串中的分隔符方法 MatchEvaluator matchEvalu = delegate (Match m) { return 替换后的分隔符; }; string newStr = Regex.Replace(需要切割的字符串, 需要替换的分割符, matchEvalu);//原创 2021-10-15 09:56:22 · 1237 阅读 · 0 评论 -
使用BarTender连接Excel文件批量打印图片
一、实现效果二、实现方法2.1、Excel文件准备①Excel文件如下:②Excel对应的照片内容需要放置在文件夹中,如下图所示:2.2、BarTender设置①设计BarTender模板请参考:获取BarTender10.1和新建一个BarTender模板②选中图片组件,同时按下鼠标右键,选择【属性】③配置数据库连接请参考:使用BarTender连接Excel打印标签④图片设置⑤打印预览注意:如果点击【预览】报错...原创 2021-10-12 16:07:32 · 4344 阅读 · 0 评论 -
DevExpress中使用BandGridView实现复合(多行)表头、设置多行表头背景颜色、表格边框颜色
一、实现效果二、 实现方法2.1、创建复合表头①将创建的GridControl下的GirdView1转化为BandGridView类型;②创建需要展示的列(指定列的名称【Name】、描述【caption】、数据字段名称【FieldName】)③绑定列实现复合表头。注意:如果复合表头有多行,则需要设置新增Band的Row Count,然后设置【Band properties下的AutoFillDown=false】详细操作如下:注意:如果要隐藏表格的设计字段内容,则需.原创 2021-10-12 14:23:17 · 2434 阅读 · 2 评论 -
C#中DataTable新增列、删除列、更改列名、交换列位置
一、新增列1.1、新增列/*新增列*/dataTable.Columns.Add("列名称", Type.GetType("数据类型"));/*比如添加【name】列,string类型的内容*/dataTable.Columns.Add("name", Type.GetType("System.String"));1.2、新增列到指定位置/*新增列到指定位置*/dataTable.Columns.Add("列名称", Type.GetType("数据类型")).SetOrdi原创 2021-10-01 23:31:57 · 15186 阅读 · 0 评论 -
C#中通过Excel模板导出数据
一、实现效果1.1、编写特定格式的Excel模板1.2、调用Excel模板导出数据二、实现核心 #region 通过模板导出Excel文件 /// <summary> /// 通过模板导出Excel文件 /// </summary> /// <param name="dt">需要导出的DataTable表</param> /// &l.原创 2021-09-18 12:19:13 · 2693 阅读 · 0 评论