winform
励志35岁去越南躺平的造砖核动黑马程序猿
这个作者很懒,什么都没留下…
展开
-
多层菜单的实现方案(含HierarchicalDataTemplate使用)
- 这里的ItemsSource是集合,使用其它方式绑定上也是一样的;下面是Winform的递归添加菜单栏数据,数据设置好父子id方便递归使用。2、WPF中可以使用HierarchicalDataTemplate非常方便。使用HierarchDataTemplate后可以显示多层的控件都可以使用。在WPF中也是差不多的可以用递归实现加载TreeView。在TreeView的控件窗口加载时,调用递归加载菜单。这个页面的ViewModel,通过递归加载菜单。原创 2024-03-07 20:41:09 · 828 阅读 · 1 评论 -
C# 使用同步上下文(Synchronization)切换UI线程
两个的作用其实是一样的,但是使用Synchronization是WPF、Winform、ASP.NET都可以使用的,提高了代码的可移植性。使用前探究:WPF中可以使用Dispatcher然后Invoke一个新方法,然后方法内部就可以对控件进行修改了,那么这个同步上下文有什么好处呢?想要省事还是用BeginInvoke(Winform)、Dispatcher(WPF)原创 2023-12-18 19:34:24 · 573 阅读 · 0 评论 -
Winform高效获取控件(Control)方法 + 源码分析
对Controls按下F12发现,Controls是个ControlCollection类型;这里我们需要关注这两个方法,但是又无法查看内部是如何实现的(.net framework4.8和.net6都不行),以此我们需要到。之前学的都是都是通过遍历控件(Controls),判断控件名是否相等来获取Control。索引器也是一样,通过查看文档可以发现它可以自己查找的,传入个名称就行。其实直接通过:Controls["控件名"],就可以获得需要的控件。背景:风好大,睡觉有点怕,起床敲代码了。原创 2023-12-16 03:06:41 · 929 阅读 · 0 评论 -
Winform中,非创建线程调用控件不推荐使用取消线程检查:Control.CheckForIllegalCrossThreadCalls = false; 应该使用委托
时,它实际上是将委托和与之关联的方法消息化,并把这个消息发送到UI线程的消息队列中。UI线程随后从消息队列中提取并执行这个委托,这意味着委托指向的方法实际上是在UI线程上执行的。:直接操作 UI 控件可能会导致难以追踪和修复的错误。使用委托使得代码更加清晰和易于维护,因为它明确了哪些操作需要在 UI 线程上执行。直接从非创建控件的线程访问它们可能会导致不可预测的行为和应用程序崩溃。:委托提供了一种将方法作为参数传递的方式,增加了代码的灵活性。你可以根据需要更改或扩展委托调用的方法,而不必修改调用代码本身。原创 2023-12-14 19:40:26 · 409 阅读 · 0 评论 -
C# Winfrom通过COM接口访问和控制Excel应用程序,将Excel数据导入DataGridView
5.获取sheet.Cells值的时候也可以不使用强制转换。--这样起个名字方面后面写。1.首先要创建xlsx文件。2.在Com中添加引用。原创 2023-08-26 18:59:54 · 1826 阅读 · 1 评论 -
常见掩码元素
原创 2023-08-14 13:13:30 · 68 阅读 · 0 评论 -
自定义控件如何实现双击事件
需要使用的就到该控件的事件中找到自己定义的UserControlClick事件,使用就行。然后再自定义控件中注册双击事件,双击将事件发送出去。首先在控件内定义好委托和事件。原创 2023-08-02 17:00:29 · 373 阅读 · 0 评论 -
自定义用户控件画质优化通用方式
如何使用了Graphics。原创 2023-07-27 22:51:13 · 79 阅读 · 0 评论 -
C# Winfrom通过COM接口访问和控制Excel应用程序,将DataGridView数据导入Excel
1.项目添加Word和Excel的COM类型库引用。4.加载数据进入Excel表格。3.设置Excel表格的标题。2.创建Excel工作表。5.显示和释放工作簿对象。原创 2023-07-14 20:45:17 · 1600 阅读 · 0 评论 -
Winform实现简历生成器(Excel版)COM
C# Winform实现对Excel的写入文字和图片功能原创 2023-07-14 16:26:05 · 1196 阅读 · 0 评论 -
Winform使用OleDb导入Excel表格+双层架构样例
4.connectionString也很不同:Provider=Microsoft.ACE.OLEDB.12.0;2.查找整张表数据的命令是:select * from [Sheet1$] (这个Sheet1是Excel表格的名称)--需要在创建连接器的时候把需要加载的Excel文件路径使用string.Format加载到{0}处。3.使用的命名空间是:System.Data.OleDb;1.下载access的引擎。原创 2023-07-13 22:19:16 · 130 阅读 · 0 评论 -
点击多次创建窗体比较好的解决方案
如果是想要重新生成的就自己生成就行,这适用于只创建一次的情况,再次点击按钮是调出第一次窗口而不是新创建。还需要设置调出窗口的FormClosed事件置静态frmWelcom为null。原创 2023-07-12 15:18:33 · 39 阅读 · 0 评论 -
vs报错:线程间操作无效: 从不是创建控件的线程访问它
C#报错,winform原创 2023-07-12 11:01:07 · 239 阅读 · 0 评论 -
Winform加载主界面前的加载动画(加载等待)
https://github.com/zzp229/Winform_LoadingWait原创 2023-07-12 11:05:34 · 1381 阅读 · 0 评论 -
Winform嵌入窗体一般步骤(简单版)
设置这个新窗体:TopLevel->Parent->Dock->BorderStyle->show。2.创建要嵌入窗体的对象。1.关闭面板的所有窗体。原创 2023-07-10 16:53:56 · 442 阅读 · 0 评论 -
winform自定义控件-水管
【代码】winform自定义控件-水管。原创 2023-07-09 13:06:34 · 521 阅读 · 0 评论 -
Winform自定义控件,属性添加到属性栏
字段和属性间添加:[Browsable(true), Category("自定义属性"), Description("获取或设置管道控件的流动颜色")]原创 2023-07-08 12:49:18 · 383 阅读 · 0 评论 -
winform使用ListView编写日志框
1、首先绑定ImageList。2.使用构造方法添加图片和日期。原创 2023-07-06 15:33:44 · 675 阅读 · 0 评论 -
自定义控件,文本框TextBox自带空值报警
2、组件TextBoxEx原本是继承自Control,需要改为TextBox,这样才是一个TextBox控件。1、首先创建类库ClassLibrary1->添加组件TextBoxEx。3、将控件errorProvider添加到组件的设计中。4、最关键的实现,在组件类中添加判断文本是否为空的方法。5、重新生成一遍解决方案就可以看见自己定义的控件了。这样就可以调用该控件的方法了。原创 2023-06-19 18:21:22 · 209 阅读 · 0 评论 -
委托和事件(event)实现窗口间的通信
委托是在要调用的窗口定义,指向要发送消息窗口的方法。怕忘记了,重写一遍,比较简陋。原创 2023-06-17 23:21:54 · 71 阅读 · 0 评论 -
WinForm把Lable变成一条线
删除Lable的Text -> 设置属性AutoSize为false -> 属性BorderSytle为FixedSingle。这个时候拖动就是线了,但是是两条,到Size里面把Height设置为0即可。原创 2023-06-06 23:47:19 · 293 阅读 · 0 评论