C#
文章平均质量分 58
zwb_578209160
这个作者很懒,什么都没留下…
展开
-
C#--ini-parser解析库
目录基础应用INI文件结构细节存取资料直接访问添加或删除节或键保存文件示例中使用的INI文件的内容配置解析器行为自定义解析器算法—仅供参考附件:获取ini-parser基础应用此页面将显示代码示例,这些示例将帮助您使用此解析器读取INI文件的内容。请参阅配置页面以了解如何在解析文件时更改。INI文件结构各个部分的INI文件const,每个定义一个唯一的键,并为每个键分配一个唯一的值。节被声明为包含在方括号中的唯一单词。方括号内的空格将被忽略,但必转载 2021-08-21 10:07:54 · 2192 阅读 · 0 评论 -
C#--ini文件格式
为什么要用INI文件?如果我们的程序没有任何配置文件时,这样的程序对外是全封闭的,一旦程序需要修改一些参数必须要修改程序代码本身并重新编译,这样很不好,所以要用配置文件,让程序出厂后还能根据需要进行必要的配置;配置文件有很多,如INI配置文件,XML配置文件,还有就是可以使用系统注册表等。一、简介*.ini文件是Initialization file的缩写,即为初始化文件,是Windows系统配置文件所采用的存储格式,统管Windows的各项配置,一般用户就用Windows提供的各项图形化管理界面转载 2021-08-21 09:27:40 · 703 阅读 · 0 评论 -
C#--color颜色对照表
转载 2021-08-11 13:37:29 · 1183 阅读 · 0 评论 -
C#--Abstract、 Virtual、Override的使用
1、abstract abstract 修饰符指示所修饰的内容缺少实现或未完全实现。abstract修饰符可用于类、方法、属性、索引器和事件。在类声明中使用abstract修饰符以指示某个类只能是其他类的基类。标记为抽象或包含在抽象类中的成员必须通过从抽象类派生的类来实现。(1)抽象类具有以下特性:1) 抽象类不能实例化。2) 抽象类可以包含抽象方法和抽象访问器。3) 不能用sealed修饰符修饰抽象类,因为这两个修饰符的含义是相反的。采用sealed修饰符的类无...转载 2021-08-04 17:01:48 · 646 阅读 · 0 评论 -
C#--throw的几种抛异常方式及区别
之前,在使用异常捕获语句try...catch...throw语句时,一直没太留意几种用法的区别,前几天调试程序时发展找不到异常根源,无意中了解到几种使用方法是有区别的。总结如下: 我们都知道,C#中使用throw和throw ex抛出异常,但二者是有区别的。 在C#中推荐使用throw;来抛出异常;throw ex;会将到现在为止的所有信息清空,认为你catch到的异常已经被处理了,只不过处理过程中又抛出新的异常,从而找不到真正的错误源。 th...转载 2021-08-04 15:28:14 · 16760 阅读 · 1 评论 -
C#--问题--VS2015发布中没有Visual Studio Installer
Microsoft Visual Studio 2015 Installer Projects下载地址:Microsoft Visual Studio 2015 Installer Projects extension下载后双击安装完成后重启VS就可以看到转载 2021-07-28 11:35:36 · 852 阅读 · 1 评论 -
C#--打包安装项目
使用VS2015的Visual Studio Installer打包安装项目,虽然整体操作很简单,但还是有几个特殊的点需要记一下,故写下此博客方便以后查阅第一步,创建安装项目如下:里面最左侧的框框有三个文件夹1.“应用程序文件夹”即"Application Folder"表示要安装的应用程序需要添加的文件;2.“用户的‘程序’菜单”即"User's Programs Menu"表示:应用程序安装完,用户的“开始菜单”中的显示的内容,一般在这个文件夹中,需要再创建一个文件用来存转载 2021-07-28 11:32:08 · 2798 阅读 · 0 评论 -
C#--浅析抽象类与接口的区别
C#允许把类和函数声明为abstract。抽象类不能实例化,而抽象函数也不能直接实现,必须在非抽象的派生类中重写。显然,抽象函数本身是虚拟的,但是不能提供virtual关键字。如果类包含了抽象函数,则该类也是抽象的,必须声明为抽象。定义抽象类:public abstract class Animal{ protected string _name; public abstract string Name { get; } pub...转载 2021-07-26 08:59:20 · 412 阅读 · 0 评论 -
C#--接口
C#中有了接口这一概念。我觉得接口就像是C++中的抽象基类。接口可以理解为是一种约定,使得实现这个接口的类或是结构在形式上保持一致。1、声明接口语法和声明抽象类完全相同。public interface IBankAccount{ void PayIn(decimal amount); bool Withdraw(decimal amount); decimal Balance { get; }} 注意:接口中只能包...转载 2021-07-26 08:52:20 · 382 阅读 · 0 评论 -
C#--16进制转浮点类型
string s = "40710DFB";MatchCollection matches = Regex.Matches(s, @"[0-9A-Fa-f]{2}");byte[] bytes = new byte[matches.Count];for (int i = 0; i < bytes.Length; i++) bytes[i] = byte.Parse(matches[i].Value, System.Globalization.NumberStyles.AllowHexSpe.原创 2021-07-24 16:37:35 · 3587 阅读 · 0 评论 -
C#--异常--托管的 PInvoke 签名与非托管的目标签名匹配问题
[DllImport("XORDll.dll", EntryPoint = "OutEncrypt", CharSet = CharSet.Ansi, //如果使用C写的XORDll.dll,这个字符集使用Auto会导致动态连接失败。 CallingConvention=CallingConvention.StdCall)] public static extern int OutEncrypt( string .转载 2021-07-21 08:56:17 · 550 阅读 · 0 评论 -
C#--异常--函数调用导致堆栈不对称
1、异常提示信息为:函数调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。2、出现场景:这种异常大多出现在C#调用C++的动态库时。3、处理方法把 [DllImport("winmm.dll", EntryPoint = "sndPlaySoundA",)]改为[DllImport("winmm.dll", EntryPoint = "sndPlaySoundA", CallingConvention = CallingConvention.Cdecl)].原创 2021-07-21 08:37:22 · 2008 阅读 · 1 评论 -
C#--调用C++动态库 dll 时遇到的一些常见问题
在 C# 调用 C++ 生成的 dll 时,如果是新手,会有如下一些问题需要解决:一:参数匹配的问题,特别是字符串与 char* 参数类型二:编译时提示没有找到相关的函数名字三:C#如何注册C++回调函数解决方案:首先给大家推荐一款软件,叫做CLRInsideOut,其中一个的功能就是把C++下的结构体或者函数声明转换成C#下的定义,效果如下:一、指针、地址相关的问题很多,这里只说我遇到的几个问题1.C#调用C++函数时传入字符串代码如下:C++头文件:#d.转载 2021-07-21 08:13:54 · 1453 阅读 · 0 评论 -
RT-Thread--Nano
1、RT-Thread Nano简介RT-Thread Nano 是一个极简版的硬实时内核,它是由 C 语言开发,采用面向对象的编程思维,具有良好的代码风格,是一款可裁剪的、抢占式实时多任务的 RTOS。其内存资源占用极小,功能包括任务处理、软件定时器、信号量、邮箱和实时调度等相对完整的实时操作系统特性。适用于家电、消费电子、医疗设备、工控等领域大量使用的 32 位 ARM 入门级 MCU 的场合。下图是 RT-Thread Nano 的软件框图,包含支持的 CPU 架构与内核源码...原创 2021-07-05 09:37:15 · 776 阅读 · 0 评论 -
C#--Winform第三方控件资源汇总
最近在用C#Winform做一个关于GNSS作业仿真的软件,这次界面想做的和别人写的WPF一样炫酷些,然而自定义控件太麻烦,于是就到网络搜索轮子哥造好的轮子,随着编程世界的开源化和中国程序员的崛起,有越来越多的优秀作品被开源,供大家学习使用,以下呢,就是我找到的开源的自定义的控件资源,希望可以帮助大家:1.HZHControls 传送门:-------------->ClickMe2.SunnyUI.Sharp 传送门:-------------->ClickMe...转载 2021-03-12 17:42:14 · 15477 阅读 · 0 评论 -
C#--Winform开发常见注意事项
一、 Winform界面闪烁1.控件的使用尽量以纯色为主,尽量不使用背景图,或者把大图改成小图,或者图片不缩放绘制,或者直接用不透明的纯色背景色(Winform控件透明是伪透明,是通过截取父容器背景来实现的,所以效率比较低,而且有时候会有延迟。而且多个透明控件叠加的时候不能分层显示出各个控件的透明效果)2.自定义控件中使用双缓冲。3.窗体边框最好不要设置为None,保留窗体最大化最小化动画,可以避免最小化恢复时候的界面闪烁。可能会有人说我的窗体是自定义美化的,边框为None了。其实可以通过拦截消转载 2021-03-02 13:52:21 · 1597 阅读 · 0 评论 -
C#--三层架构编程
三层结构符合“高内聚、低耦合”的特点,每个层职责明确。利用分层,降低了层间依赖,使系统的耦合更加松散,从而使系统更加容易维护和复用。三层:显示层(UI)、业务逻辑层(BLL)、数据访问层(DAL)再加上实体类库(Model)组成。1.显示层(UI) (1)在UI中添加对Model、BLL的引用 (2)编写代码传递数据给BLL层 职责:①向用户展示特定的业务数据 ②采集用户的信息和操作2.业务逻辑层(BLL) (1)先建立业务逻辑层类库BLL (2)在BLL中转载 2021-02-24 15:59:55 · 1221 阅读 · 0 评论 -
C#--winform窗体淡入淡出效果
主要是利用了Form的Opacity属性和Timer控件。Opacity主要是指窗体的不透明性,其值在100%~0%,设置时可以为double型的值,为0.0时,Form完全透明,为1.0时,Form完全显示。Timer控件主要是用来计时的,有Interval、Enabled属性,Interval用来设置两次计时之间的间隔,Enabled设为true时计时器可用。1、窗体淡出,代码如下...原创 2020-03-30 22:41:39 · 3621 阅读 · 0 评论 -
C#--自定义控件(1)
1、自定义控件的3种方式 (1)复合控件:将标准控件组合起来 class MyControl : UserControl{} (2)扩展控件:继承标准控件 class MyButton : Button{} (3)自定义控件:完全的自定义一个控件 class MyControl...原创 2020-03-29 18:00:51 · 2951 阅读 · 0 评论 -
C#--SerialPort
1、DiscardOutBuffer和DiscardInBuffer 1)用途: SerialPort.DiscardOutBuffer方法清除串行驱动程序发送缓冲区的数据; SerialPort.DiscardInBuffer方法清除串行驱动程序的接收缓冲区的数据; 2)用法: 当你的程序在窗口发送一帧数据(所谓一帧是指由...原创 2020-03-21 08:21:07 · 3676 阅读 · 1 评论 -
C# winform窗体及其控件的自适应
为了提升用户的体验,窗体不能再固定其大小(用户不能随意改变窗体的大小),所以要做到窗体适应电脑屏幕的分辨率,窗体中的控件要跟随窗体的变化比例而变化。 通过网上查找学习,发现有几个位大佬的方法不错,所以把他们的代码加到自己的工程中测试了一下,发下尽管能实现比例变化的功能,但是还是有时候会有控件错位(下面的方法一),页面加载较慢等问题。在没寻找到更好的方法下,先把这两种方法...原创 2020-03-07 16:19:05 · 5167 阅读 · 0 评论 -
C#--INotifyPropertyChanged
1、介绍 INotifyPropertyChanged是一个接口,该接口包含一个事件, 针对属性发生变更时, 执行该事件发生。 // // 摘要: // 通知客户端属性值已更改。 public interface INotifyPropertyChanged { // // 摘要: /...原创 2020-03-30 22:48:34 · 4032 阅读 · 0 评论 -
C#--winform界面美化
1、工控上位机界面总结(参考贴:https://blog.csdn.net/zqrhzyj/article/details/76638948)一般的工控界面分成三部分:(1)、标题菜单部分,即项目名称、界面菜单等(2)、数据显示及按钮等部分,即图形显示区,可以显示工艺流程图,采集到的相关数据信息、控制按钮等。(3)、尾部部分,可以添加公司的相关信息等。...原创 2020-03-31 11:15:18 · 6867 阅读 · 0 评论 -
C#--扁平化窗体UI
1、设置窗体边框的类型,把FormBorderStyle属性设置为None,窗体将变成无边框:2、无边框窗体默认不能随意拖动,也没有窗体最大化、最小化、关闭等按钮,解决办法如下:(1)实现随意拖动窗体 参考博客:《C#--无边框窗体实现拖动、最大化、最小化、关闭》(2)窗体最大化、最小化、关闭等按钮的实现 1)代码 参考博客:《C#-...原创 2020-04-28 20:53:29 · 4415 阅读 · 0 评论 -
C#--快捷键汇总
1、注释:ctri+k+c,取消注释:ctrl+k+u;原创 2020-03-30 22:47:10 · 3343 阅读 · 0 评论 -
C#--无边框窗体实现拖动、最大化、最小化、关闭
窗体在设置为无边框模式(设置方法:FormBorderStyle=None),默认是无法随意拖动的,也没有最大化、最小化、关闭等按钮。1) 选中要去除边框的窗体,按F4调出窗体属性。2)在属性框中找到FormBorderStyle选择none。一、实现窗体拖动方法一:调用APIusing System.Runtime.InteropServices; ...原创 2020-03-30 22:49:16 · 8750 阅读 · 0 评论 -
小图标搜索网站汇总
1、http://www.iconfinder.com/2、http://www.iconpng.com/3、http://www.iconlet.com/4、http://findicons.com/5、http://www.iconseeker.com/6、http://www.iconarchive.com/7、阿里图库:https://www.iconfont.cn...原创 2020-02-03 18:05:18 · 2900 阅读 · 0 评论 -
C#学习论坛和通用类获取网站汇总
1、C#爬虫论坛-苏飞论坛:http://www.sufeinet.com/2、CSkin博客:http://bbs.cskin.net/3、C#经典源码实例--开发者论坛:https://www.dxper.net/forum-58-1.html原创 2020-03-30 22:50:35 · 4424 阅读 · 0 评论