Winform控件优化之圆角按钮2

目录前言圆角按钮实现的进一步优化主要功能【圆角方面】OnPaint方法中不要使用e.ClipRectangle重新创建Region的锯齿问题和优势代码具体实现测试扩展按钮控件ButtonProTextR...

2023-01-01

C#实现多文件压缩与解压功能

目录实现功能开发环境实现代码实现效果这个功能没什么可介绍的,大家都懂,直接上代码了。。实现功能选择多个文件压缩成ZIP文件和解压ZIP文件开发环境开发工具: Visual Studio 2...

2023-01-01

UpdateLayeredWindow实现任意异形窗口使用详解

目录引言Sample放置子控件Sample其他问题Bug引言前面提到,我们可以用SetWindowRgn或SetLayeredWindowAttributes实现不规则以及半透明的效果对于SetWindowRgn,它通过一个Rgn来...

2023-01-01

C#实现单例模式的6种方法小结

目录介绍Version 1 - 非线程安全Version 2 - 简单的线程安全Version 3 - Double-check locking的线程安全Version 4 - 不完全懒汉式,但不加锁的线程安全Version 5 - 完全懒汉...

2023-01-01

C#仿QQ实现简单的截图功能

目录实现功能开发环境实现代码实现效果接上一篇写的截取电脑屏幕,我们在原来的基础上加一个选择区域的功能,实现自定义选择截图。个人比较懒,上一篇的代码就不重新设计了,就简单...

2023-01-01

C# 设置Chart的X轴为时间轴​​​​​​​详情

目录前言界面设计效果展示代码逻辑前言将Chart的X轴设置为时间轴是一个说简单不简单的问题,说难也不难的问题,你用过之后呢就感觉很容易,你没用过呢,就比较难,所以这个是很值得我...

2023-01-01

C#在Entity Framework中实现事务回滚

在使用Entity Framework为主从表添加数据,当一个表添加数据成功,另一个表添加数据失败,这时候就需要用到事务回滚。比如有以下关系的2张表。客户端使用TransactionScope类可以...

2023-01-01

C#中数组扩容的几种方式介绍

假设有一个规定长度的数组,如何扩容呢?最容易想到的是通过如下方式扩容: class Program { static void Main(string[] args) { int[] arrs = n...

2023-01-01

C#中new操作符的工作机制

使用new操作符来创建对象,其背后到底发生了什么?有一个父类Animal,Dog派生于Animal。 class Program { static void Main(string[] args) { D...

2023-01-01

Winform控件优化Paint事件实现圆角组件及提取绘制圆角的方法

目录前言Paint事件中实现圆角控件提取绘制圆角矩形和旁边小尖角的代码为扩展方法介绍扩展方法测试尖角的显示位置重绘控件后文本的处理同时重绘文本通过添加Label控件实现对...

2023-01-01

C# form-data上传图片流到远程服务器的详细代码

先贴代码,后面做一些简单说明:public static string sendPostHttpRequest_2(string url, byte[] postBytes, string contentType= "multipart/form-data; boundary=--------...

2023-01-01

C#实现文件与字符串互转的方法详解

目录实现功能开发环境实现代码实现效果嗯,就是BASE64,不用多想,本来计划是要跟上一篇字符串压缩一起写的,用来实现将一个文件可以用json或者text等方式进行接口之间的传输,为了保...

2023-01-01

C# using的本质及使用详解

目录01.点明观点02.C#中,using的两个作用03.using如何实现资源释放04.实践探索05.总结01.点明观点C#中,非托管资源使用之后必须释放,而using()是使用非托管资源的最佳方式,可以...

2023-01-01

C# Random类随机函数实例详解

目录引言一、创建界面二、效果展示三、Random类方法四、代码逻辑总结:引言Random类是非常值得学习的一个类,所以我们今天一起学习一下Random这个类,对于模拟数据这个是随机类可...

2023-01-01

C#中的属性解析(get、set、value)

目录C#中的属性(get、set、value)C#中属性的定义C#中的属性(get、set、value)C#语言在面向对象设计和编程中对数据安全提出了严格的要求,其中一个重要的原则就是数据封装。根...

2023-01-01

C#中的var关键字用法介绍

从.NET 3.0开始,在方法内部可以使用var关键字声明局部变量。var关键字到底是什么?在何种情况下使用呢?var关键字用来隐式地声明一个数据类型,变量类型是在编译期确定的,而不是在...

2023-01-01

C#各种异常处理方式总结

.NET的异常处理机制用来发现、处理运行时错误。如果开发人员没有提供异常的处理机制,就默认采用.NET的机制。通常使用try...catch...finally捕获异常。try{ //有可能发生...

2023-01-01

C#实现模拟ATM自动取款机功能

目录(1)关于用户帐号的类:Account(2)关于银行数据库的类:BankDatabase(3)关于ATM屏幕显示的类:Screen(4)关于ATM键盘的类:Keypad(5)关于进钞、出钞口的类:DepositSlot(6)关于ATM...

2023-01-01

Winform控件优化之圆角按钮1

目录前言圆角按钮实现【重写OnPaint实现圆角绘制】代码主要关键点或思路、优化使用圆角按钮利用填充内外两层圆角矩形路径形成Border通过缩放实现正确的内外两层圆角矩形路...

2023-01-01

C#实现接收QQ邮件的示例代码

目录实现功能开发环境实现代码前面写了一篇通过smtp协议利用qq邮箱去实现发送邮件的功能。这一篇我们使用pop协议来实现一下接收邮件。由于邮件的内容类型比较丰富,我暂时没...

2023-01-01

C#实现一键清空控件值的示例代码

目录场景需求开发环境开发工具实现代码实现效果代码解析场景在任何一个Form表单的操作页面或者数据台账的查询页面,基本都会看到一个清除的按钮,其功能就是用来清除我们需要抛...

2023-01-01

C#中const,readonly和static关键字的用法介绍

如果有一个值不太会变化,我们经常使用const和readonly,这2者有何不同呢?有时候,我们也会在readonly之前加上关键字static,这又意味着什么呢?constconst默认是静态的,可以通过"类名....

2023-01-01

通过 C#/VB.NET 代码将 Excel 工作表拆分为单独的文件

目录前言程序环境具体步骤完整代码效果图前言随着数据的不断扩大,有的数据表的规模会以几何级增长,当数据达到一定规模时,数据的查询,读取性能就会变得缓慢,这时就需要拆分数据表...

2023-01-01

C#序列化与反序列化集合对象并进行版本控制

当涉及到跨进程甚至是跨域传输数据的时候,我们需要把对象序列化和反序列化。首先可以使用Serializable特性。 [Serializable] public class Person { public...

2023-01-01

WPF使用DrawingContext实现绘制刻度条

WPF 使用 DrawingContext 绘制刻度条框架使用大于等于.NET40;Visual Studio 2022;项目使用 MIT 开源许可协议;定义Interval步长、SpanInterval间隔步长、MiddleMask中间步长。...

2023-01-01

详解C# WinForm如何优雅的处理异常

目录场景需求开发环境开发工具实现代码实现效果代码解析场景在运行、调试代码的时候,往往会遇到一些异常情况,很多时候我们代码写得足够健壮,所以出现的概率比较低,但是如果一旦...

2023-01-01

C#非托管泄漏中HEAP_ENTRY的Size对不上解析

目录一:背景1. 讲故事二:如何正确推导1. 原理是什么?2. 通过汇编观察编解码逻辑3. 寻找 edi 所属的堆块总结一:背景1. 讲故事前段时间有位朋友在分析他的非托管泄漏时,发现NT堆的...

2023-01-01

Winform开发中使用下拉列表展示字典数据的几种方式

在Winform开发中中,我们为了方便客户选择,往往使用系统的字典数据选择,毕竟选择总比输入来的快捷、统一,一般我们都会简单封装一下,以便方便对控件的字典值进行展示处理,本篇随笔...

2023-01-01

WPF利用DrawingContext实现绘制温度计

WPF 使用 DrawingContext 绘制温度计框架使用大于等于.NET40;Visual Studio 2022;项目使用 MIT 开源许可协议;定义Interval步长、MaxValue最大温度值、MinValue最小温度值。Cu...

2023-01-01

WPF实现自带触控键盘的文本框

一 引入项目有个新需求,当点击或触碰TextBox时,基于TextBox的相对位置,弹出一个自定义的Keyboard,如下图所示:二 KeyboardControl先实现一个自定义的KeyboardControl,它继承自Wind...

2023-01-01

C#如何给新建的winform程序添加资源文件夹Resources

目录给新建的winform程序添加资源文件夹ResourcesC#调用Resources里的资源给新建的winform程序添加资源文件夹Resources小菜鸟开始学习WinForm程序别人的项目都有资源文件夹...

2023-01-01

C# 未将对象引用设置到对象的实例

出现“未将对象引用设置到对象的实例” 错误,一般是下面的原因:1、ViewState 对象为Null。
2、DateSet 为空。
3、sql语句或Datebase的原因导致DataReader空。
4、...

2023-01-01

WPF实现绘制扇形统计图的示例代码

扇形统计图绘制一个扇形原理也是基于Canvas进行绘制;ArcSegment[1]绘制弧形;绘制指示线;绘制文本;鼠标移入动画;显示详情Popup;源码Github[2] Gitee[3]示例代码1)SectorChart.cs...

2023-01-01

基于C#实现Windows服务的方法详解

目录前言Windows服务介绍创建Windows服务安装卸载Windows服务前言在实际应用过程中,有时候我们希望开发的程序,不需要界面,直接开机就可以长时间运行,这时候,我们可以考虑做成一...

2023-01-01

C#中的Hashtable 类使用详解

目录一:Hashtable 类简单说明二:Hashtable 类的构造函数三:Hashtable 类的属性四:Hashtable 类的常用方法1: Hashtable.Add(Object, Object) 的方法介绍2: Hashtable.Clone ()的方...

2023-01-01

C#实现控制电脑注销,关机和重启

目录实现目标知识点Processshell32.dllUser32.dllStruct数据结构实现步骤功能类窗体组态事件触发事件程序实现目标通过C#实现电脑的注销、关机、重启功能知识点本案例涉及的...

2023-01-01

WPF+SkiaSharp实现自绘弹幕效果

SkiaSharp 自绘弹幕效果框架使用.NET60;Visual Studio 2022;项目使用 MIT 开源许可协议;接着上一篇 WPF 弹幕上期有网友建议使用Skia实现弹幕。弹幕消息使用SKElement做弹幕展...

2023-01-01

C# 函数返回多个值的方法详情

目录引言1.使用ref参数2.使用out参数修饰符3. 使用元组类4.使用C#7 ValueTuple5. 使用结构或类引言根据 C# 语言规范,不可能从一个方法返回多个值。使用 C# 提供的一些其他功...

2023-01-01

WPF实现窗体亚克力效果的示例代码

WPF 窗体设置亚克力效果框架使用大于等于.NET40。Visual Studio 2022。项目使用 MIT 开源许可协议。WindowAcrylicBlur 设置亚克力颜色。Opacity 设置透明度。实现代码1) 准...

2023-01-01

C#实现HTTP访问类HttpHelper的示例详解

在项目开发过程中,我们经常会访问第三方接口,如我们需要接入的第三方接口是Web API,这时候我们就需要使用HttpHelper调用远程接口了。示例中的HttpHelper类使用Log4Net记录了...

2023-01-01

C# 如何调用python脚本

目录C#调用python脚本方式一方式二方式三方式四方式五C#调用python脚本在平常工程项目开发过程中常常会涉及到机器学习、深度学习算法方面的开发任务,但是受限于程序设计语言...

2023-01-01

C#中委托、事件和回调的使用及说明

目录委托的使用案例事件的使用案例带参数的事件案例回调函数的使用案例委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给...

2023-01-01

WPF+ASP.NET SignalR实现简易在线聊天功能的示例代码

目录涉及知识点什么是ASP.NET SignalR在线聊天整体架构ASP.NET SignalR在线聊天服务端1. 创建ASP.NET Web API项目2. 创建消息通知中心Hub3. 注册服务和路由4. ASP.NET Sign...

2023-01-01

WPF使用WrapPanel实现虚拟化效果

WrapPanel 实现虚拟化1.框架使用大于等于.NET40;2.Visual Studio 2022;3.项目使用 MIT 开源许可协议;4.众所周知 WPF 的 StackPanel 在加载大量数据时性能会特别差,但是官方提...

2023-01-01

Netcore Webapi返回数据的三种方式示例

目录ASP.NET Core为Web API控制器方法返回类型提供了如下几个选择:1. 返回指定类型(Specific type)2. 返回 IActionResult 实例3. 返回 ActionResult<T> 实例ASP.NET Core为Web...

2023-01-01

C#中对集合排序的三种方式

对集合排序,可能最先想到的是使用OrderBy方法。 class Program { static void Main(string[] args) { IEnumerable<Student> result = GetSt...

2023-01-01

C# 使用原生 System.IO.Compression 实现 zip 的压缩与解压

zip 是一个非常常见的压缩包格式,本文主要用于说明如何使用代码 文件或文件夹压缩为 zip压缩包及其解压操作,
我们采用的是 微软官方的实现,所以也不需要安装第三方的组件包。...

2023-01-01

C#设计模式之装饰器模式实例详解

最近踢了场球,9人制比赛,上半场我们采用防守阵型效果不佳,下半场采用进攻阵型取得了比赛的主动。我们上下半场所采取的策略,似乎可以用"装饰器"模式实现一遍。首先肯定是抽象基...

2023-01-01

WPF+Canvas实现平滑笔迹的示例代码

目录实现思路实现效果实现代码实现思路收集路径点集。平均采样路径点集。将路径点集转为 LineB。把 LineB 数据传给 Path。实现效果实现代码1)Vector2D.cs 代码如下using Sy...

2023-01-01

C#事件中关于sender的用法解读

目录C#事件sender的小用法一、什么是sender二、小用法C#事件中sender和e参数的理解C#事件sender的小用法开WPF新坑了,看了WPF的炫酷界面,再看看winForm实在是有些惨不忍睹(逃)。...

2023-01-01
返回顶部
顶部