C#学习
疯狂的Alex
程序猿一枚,目前专注于C#,欢迎交流
展开
-
VS2019中设计器不显示,只显示代码
在一次更新NUGET包后,Form设计器界面不显示了,只显示绿色的代码原来是因为我窗体有继承一个父窗体1.将父窗体类名字删除,保存。2.再重新将名字写上,保存。OK,设计器恢复使用不知道这是是不是VS2019的一个BUG。如果帮到了你,请点个赞吧...原创 2022-03-16 14:53:55 · 3311 阅读 · 0 评论 -
winform加载和关闭时事件执行顺序
一、以下是加载次序当 Windows Form 应用程序启动时,会以下列顺序引发主要表单的启动事件:System.Windows.Forms.Control.HandleCreatedSystem.Windows.Forms.Control.BindingContextChangedSystem.Windows.Forms.Form.LoadSystem.Windows.Forms.Control.VisibleChangedSystem.Windows.Forms.Form.Activated原创 2022-03-16 10:22:56 · 917 阅读 · 0 评论 -
winform多个子窗体参数保存以及重新加载的方法(C#)
背景:在winform设计中,会遇到一个主窗体对多个不同的子窗体的加载管理,其中一个要求是在重新打开软件加载原有的子窗体时,各个子窗体的用户参数能否重新加载。在网上没有找到成套的公开方案,于是自己做了一整套的方法。一、准备工作1.引用SettingsProviderNet或者直接安装其NUGET包2.创建窗体参数类FormPara,各个参数可以用不同的属性来表示,方便后续拓展。如果是多个类似的窗体,为方便拓展,也可以定义个接口,然后分别实现各个窗体子类二、获取各个子窗体参数1.在各个子窗体类中原创 2022-03-11 16:50:25 · 2943 阅读 · 0 评论 -
winform继承窗体后子窗体不能使用设计器显示的问题
winform继承窗体后子窗体不能使用设计器显示的问题针对这个问题:第一点:继承的父窗体类不能使用抽象类如果有抽象类即将抽象类改为普通类,需要实现的抽象方法改为虚方法第二点:屏蔽掉父窗体类的控件初始化方法,即//InitializeComponent();第三点:注意前两点修改完成后,关闭所有窗体,重新编译与网上百度到的跟平台有关系啊什么的毫无作用,目前使用的是VS2019如有疑问,欢迎留言讨论...原创 2022-03-02 17:40:09 · 1646 阅读 · 0 评论 -
winform控件tooltiptext不显示问题
注意使用的控件是否是toolstrip或者是menustrip等集合控件需要将整个控件的ShowItemsToolTips属性,设置为True,然后子控件才能显示对应的tooltip原创 2022-02-21 12:28:17 · 1373 阅读 · 0 评论 -
The designer cannot be shown because the document for it was never loaded.解决办法
VS工程打开后,打开UI设计界面时有时会出现这样的报错The designer cannot be shown because the document for it was never loaded自己很慌,以为代码丢了解决办法:1.关闭工程中打开的所有代码界面就是右上角这样的界面2.工程名称上方右键“clean”,我的界面英文的,中文应该是清理的意思3.工程名称右键“Build”一下4.重新打开UI界面,OK,问题解决啦!遇事不要慌,肯定有办法,如果这篇文章能帮到你给点个赞或者打赏一原创 2021-11-06 10:08:28 · 1931 阅读 · 1 评论 -
C#winform软件长时间运行后无响应问题解决
问题现象:软件长期运行后,再点击软件无响应,此时CPU占用率较高,只能通过任务管理器强行关闭解决过程:一、Dump文件存储1.首先保证C#工程版本编译后不要动,将生成的EXE拿去测试,复现问题;2.复现问题后,通过任务管理器右键存DUMP文件二、通过VS2019分析DUMP文件1.将DUMP文件放回到原来保存的工程中DEBUG目录下生成的EXE文件原有目录下(为了保证PDB文件和exe和dump同一目录)2.使用VS打开DUMP文件3.打开后直接点击右侧DEBUG后,关闭调试4.在solu原创 2021-10-27 11:23:44 · 7073 阅读 · 0 评论 -
使用stylecop 规范C#编码
可直接在VS操作完成,简单易懂第一步,打开VS第二步,安装软件第三步,规则修改第四步,规则生效stylecop 是代码静态检查分析的一大利器,可以自定义检查规则,安装操作使用方便,相信很多写C#的朋友都会使用的到下面详细介绍安装以及规则修改的使用步骤第一步,打开VS使用VS打开你所要检查的解决方案或者工程,我使用的是VS2019,打开后在右上角界面有个search输入框第二步,安装软件1.在search输入框中输入nuget,如下图所示选择manage nuget packges2.接着选择原创 2021-10-23 11:35:10 · 596 阅读 · 1 评论 -
如何在C#代码中找到高耗时的操作-UDP接收数据慢问题
办法:逐个屏蔽代码查找先屏蔽大的块,再逐步深入,我遇到的UDP接收不到数据的问题,不是因为接收部分产生了大的耗时,是因为上一次UDP收到后的写入文件操作耗时,导致影响到下一次切换到接收回调,现象就是,UDP收不到下一包数据,收不到下下包数据。。。。。...原创 2021-08-14 10:54:36 · 815 阅读 · 0 评论 -
面向对象堆栈理解
堆存对象,栈存变量如下图:1.对象有三个属性,地址,类型和值,对象存在堆(heap)中,2.变量存在栈中,不同变量可以指向同一个对象也可以指向多个不同对象原创 2021-04-24 19:04:45 · 221 阅读 · 0 评论 -
C#控件放置的顺序不对怎么办?
想把某个控件后放置,以改变该控件的大小等,可以直接将该控件剪切一下,然后重新粘贴,顺序就会是其他控件顺序之后了如果帮到你,请给点赞吧!!!原创 2021-03-23 16:07:53 · 421 阅读 · 0 评论 -
C#使用spitter控件分割左右两个panel并可拖动
C#用splitter分割窗口注意事项1、一定要按照顺序拖,即Z次序不能乱2、先拖panel1到from中,设置Dock为left3,拖splitter1到from中,注意千万不能拖到panel1上面,否则会失败!此时splitter1的Dock默认设置为left,设置BorderStyle为FixedSingle。4、拖panel2到from中,设置Dock为Fill即可一定要注意顺序,一定要注意添加的顺序!!!...原创 2021-02-25 12:31:23 · 2073 阅读 · 0 评论 -
C#限制Textbox文本框的输入内容
选择对应的textbox文本框在该textbox中,选择KeyPress 事件,双击创建一个事件对应的函数在函数中根据你的希望输入如下代码e.Handled = “0123456789ABCDEF\b”.IndexOf(char.ToUpper(e.KeyChar)) < 0;比如我希望要的是16进制的数字和删除按钮,其他的都不能输入你的问题解决了吗?解决了给我点个赞吧!...原创 2021-01-21 16:45:23 · 1418 阅读 · 0 评论 -
C#如何将textbox中的文本以16进制格式发送
首先认为textbox中的格式本身是HEX格式因为textbox的text属性本身是string类型,需要先将HEX转换成 string类型,传入到textbox.text当中,然后进行发送。假设我们要发送tbx1.Text中的数据转换代码: public static byte[] HexStr2Buf(string hexStr) { hexStr = hexStr.Replace(" ", ""); if ((hexStr.Length % 2)原创 2021-01-21 09:03:22 · 3244 阅读 · 0 评论