![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C#窗体
文章平均质量分 51
zwb_578209160
这个作者很懒,什么都没留下…
展开
-
C#--color颜色对照表
转载 2021-08-11 13:37:29 · 1130 阅读 · 0 评论 -
C#--throw的几种抛异常方式及区别
之前,在使用异常捕获语句try...catch...throw语句时,一直没太留意几种用法的区别,前几天调试程序时发展找不到异常根源,无意中了解到几种使用方法是有区别的。总结如下: 我们都知道,C#中使用throw和throw ex抛出异常,但二者是有区别的。 在C#中推荐使用throw;来抛出异常;throw ex;会将到现在为止的所有信息清空,认为你catch到的异常已经被处理了,只不过处理过程中又抛出新的异常,从而找不到真正的错误源。 th...转载 2021-08-04 15:28:14 · 15946 阅读 · 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 · 836 阅读 · 1 评论 -
C#--打包安装项目
使用VS2015的Visual Studio Installer打包安装项目,虽然整体操作很简单,但还是有几个特殊的点需要记一下,故写下此博客方便以后查阅第一步,创建安装项目如下:里面最左侧的框框有三个文件夹1.“应用程序文件夹”即"Application Folder"表示要安装的应用程序需要添加的文件;2.“用户的‘程序’菜单”即"User's Programs Menu"表示:应用程序安装完,用户的“开始菜单”中的显示的内容,一般在这个文件夹中,需要再创建一个文件用来存转载 2021-07-28 11:32:08 · 2742 阅读 · 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 · 541 阅读 · 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 · 1974 阅读 · 1 评论 -
C#--调用C++动态库 dll 时遇到的一些常见问题
在 C# 调用 C++ 生成的 dll 时,如果是新手,会有如下一些问题需要解决:一:参数匹配的问题,特别是字符串与 char* 参数类型二:编译时提示没有找到相关的函数名字三:C#如何注册C++回调函数解决方案:首先给大家推荐一款软件,叫做CLRInsideOut,其中一个的功能就是把C++下的结构体或者函数声明转换成C#下的定义,效果如下:一、指针、地址相关的问题很多,这里只说我遇到的几个问题1.C#调用C++函数时传入字符串代码如下:C++头文件:#d.转载 2021-07-21 08:13:54 · 1410 阅读 · 0 评论 -
C#--Winform第三方控件资源汇总
最近在用C#Winform做一个关于GNSS作业仿真的软件,这次界面想做的和别人写的WPF一样炫酷些,然而自定义控件太麻烦,于是就到网络搜索轮子哥造好的轮子,随着编程世界的开源化和中国程序员的崛起,有越来越多的优秀作品被开源,供大家学习使用,以下呢,就是我找到的开源的自定义的控件资源,希望可以帮助大家:1.HZHControls 传送门:-------------->ClickMe2.SunnyUI.Sharp 传送门:-------------->ClickMe...转载 2021-03-12 17:42:14 · 14927 阅读 · 0 评论 -
C#--Winform开发常见注意事项
一、 Winform界面闪烁1.控件的使用尽量以纯色为主,尽量不使用背景图,或者把大图改成小图,或者图片不缩放绘制,或者直接用不透明的纯色背景色(Winform控件透明是伪透明,是通过截取父容器背景来实现的,所以效率比较低,而且有时候会有延迟。而且多个透明控件叠加的时候不能分层显示出各个控件的透明效果)2.自定义控件中使用双缓冲。3.窗体边框最好不要设置为None,保留窗体最大化最小化动画,可以避免最小化恢复时候的界面闪烁。可能会有人说我的窗体是自定义美化的,边框为None了。其实可以通过拦截消转载 2021-03-02 13:52:21 · 1553 阅读 · 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 · 1198 阅读 · 0 评论 -
C#--winform应用程序运行内存变大
前言:.NET 一直所为人诟病的就是“胃口太大”,狂吃内存,虽然微软声称 GC 的功能和智能化都很高,但是内存的回收问题,一直存在困扰,尤其是 winform 程序,其主要原因是因为.NET程序在启动时,是需要由JIT动态编译并加载的,这个加载会把所有需要的资源都加载进来,很多资源是只有启动时才用的。以XP 系统为例子,程序启动后,打开任务管理器,会看到占用的内存量比较大,你把程序最小化,会发现该程序占用的内存迅速减小到一个很小的值,再恢复你的程序,你会发现内存占用又上升了,但是比你刚启动时的内存占转载 2020-12-02 18:59:37 · 2781 阅读 · 1 评论 -
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 · 3578 阅读 · 0 评论 -
C#--自定义控件(1)
1、自定义控件的3种方式 (1)复合控件:将标准控件组合起来 class MyControl : UserControl{} (2)扩展控件:继承标准控件 class MyButton : Button{} (3)自定义控件:完全的自定义一个控件 class MyControl...原创 2020-03-29 18:00:51 · 2935 阅读 · 0 评论 -
C#--SerialPort
1、DiscardOutBuffer和DiscardInBuffer 1)用途: SerialPort.DiscardOutBuffer方法清除串行驱动程序发送缓冲区的数据; SerialPort.DiscardInBuffer方法清除串行驱动程序的接收缓冲区的数据; 2)用法: 当你的程序在窗口发送一帧数据(所谓一帧是指由...原创 2020-03-21 08:21:07 · 3396 阅读 · 1 评论 -
C# winform窗体及其控件的自适应
为了提升用户的体验,窗体不能再固定其大小(用户不能随意改变窗体的大小),所以要做到窗体适应电脑屏幕的分辨率,窗体中的控件要跟随窗体的变化比例而变化。 通过网上查找学习,发现有几个位大佬的方法不错,所以把他们的代码加到自己的工程中测试了一下,发下尽管能实现比例变化的功能,但是还是有时候会有控件错位(下面的方法一),页面加载较慢等问题。在没寻找到更好的方法下,先把这两种方法...原创 2020-03-07 16:19:05 · 5074 阅读 · 0 评论 -
C#--INotifyPropertyChanged
1、介绍 INotifyPropertyChanged是一个接口,该接口包含一个事件, 针对属性发生变更时, 执行该事件发生。 // // 摘要: // 通知客户端属性值已更改。 public interface INotifyPropertyChanged { // // 摘要: /...原创 2020-03-30 22:48:34 · 3912 阅读 · 0 评论 -
C#--winform界面美化
1、工控上位机界面总结(参考贴:https://blog.csdn.net/zqrhzyj/article/details/76638948)一般的工控界面分成三部分:(1)、标题菜单部分,即项目名称、界面菜单等(2)、数据显示及按钮等部分,即图形显示区,可以显示工艺流程图,采集到的相关数据信息、控制按钮等。(3)、尾部部分,可以添加公司的相关信息等。...原创 2020-03-31 11:15:18 · 6778 阅读 · 0 评论 -
C#--扁平化窗体UI
1、设置窗体边框的类型,把FormBorderStyle属性设置为None,窗体将变成无边框:2、无边框窗体默认不能随意拖动,也没有窗体最大化、最小化、关闭等按钮,解决办法如下:(1)实现随意拖动窗体 参考博客:《C#--无边框窗体实现拖动、最大化、最小化、关闭》(2)窗体最大化、最小化、关闭等按钮的实现 1)代码 参考博客:《C#-...原创 2020-04-28 20:53:29 · 4368 阅读 · 0 评论 -
C#--快捷键汇总
1、注释:ctri+k+c,取消注释:ctrl+k+u;原创 2020-03-30 22:47:10 · 3278 阅读 · 0 评论 -
C#--无边框窗体实现拖动、最大化、最小化、关闭
窗体在设置为无边框模式(设置方法:FormBorderStyle=None),默认是无法随意拖动的,也没有最大化、最小化、关闭等按钮。1) 选中要去除边框的窗体,按F4调出窗体属性。2)在属性框中找到FormBorderStyle选择none。一、实现窗体拖动方法一:调用APIusing System.Runtime.InteropServices; ...原创 2020-03-30 22:49:16 · 8390 阅读 · 0 评论 -
C#通过引用AForge获取摄像头数据
1、窗体效果2、步骤(1)、首先用到AForge类库下载地址:http://www.aforgenet.com/(2)、把下载类库中的原创 2018-06-23 11:39:13 · 17712 阅读 · 103 评论