刷新
C#winform软件实现一次编译,跨平台windows和linux、mac兼容运行,兼容Visual Studio原生界面Form表单开发

博主头像 一、背景: 微软的.net core开发工具,目前来看,winform界面软件还没有打算要支持linux系统下运行的意思,要想让c#桌面软件在linux系统上运行,开发起来还比较麻烦。微软只让c#的控制台软件支持在linux运行。 二、解决方案: 我想到的一个方案是自定义封装软件的System.Wi ...

【C#】【WinForm】MDI窗体

博主头像 MDI窗体的相关学习使用 1、设置MDI父窗体 在属性中找到IsMdiContainer选项,设置为True 2、添加MDI子窗体,在项目中依次选择添加->窗体,然后一直默认即可 添加后的项目目录(Form1为父窗口,Form2、Form3为子窗口) 3、在Form1.cs中,创建对应MDI子窗口的 ...

WinForm中UI假死的解决方法

博主头像 https://www.codenong.com/cs106719464/ WinForm中的UI假死其实是个老生常谈的问题了,但最近还是很多人问我该如何解决,所以今天就来说明一下如何解决UI假死的问题。实验程序界面如下图所示: 方法一:async + await + Task 首先看下面一段代码: ...

Winform跨线程访问UI

博主头像 在开发`winfrom`应用时,经常遇到异常:`System.InvalidOperationException:“线程间操作无效: 从不是创建控件“xxxx”的线程访问它。`出现这个异常的原因是创建这个UI的线程,和当前访问这个UI的线程不会是同一个。Winform为了防止线程不安全,因此对这个跨... ...

解读 --- System.Windows.Forms.Timer是前台线程吗?

博主头像 ## 引言 今天同事问了我一个问题,`System.Windows.Forms.Timer`是前台线程还是后台线程,我当时想的是它是跟着UI线程一起结束的,应该是前台线程吧? 我确实没有仔细研究过他们的异同,所以带着这个疑问探究一下`System.Windows.Forms.Timer`。 ## S ...

DXP TreeList 目录树

博主头像 # DXP TreeList 目录树 ## 1.需求背景 需要一个支持`勾选`,`拖动节点`,`保存各节点顺序`的目录树。 ![image](https://jsd.cdn.zzko.cn/gh/YuanjunXu/Images@main/src/image.3wqa9fpk8xo0.jpg) ## ...

EnableHeaderCheckBox导致空指针

博主头像 GridViewCheckBoxColumn以CheckBox的形式显示、编辑bool值,实现行选中效果。 如果需要在表头添加全选框,可以将EnableHeaderCheckBox设置为true: ```C# private void AddCheckColumn() { checkColumn = ...

DataGridView 控件分页

博主头像 在使用`Winform`开发桌面应用时,工具箱预先提供了丰富的基础控件,利用这些基础控件可以开展各类项目的开发。但是或多或少都会出现既有控件无法满足功能需求的情况,或者在开发类似项目时,我们希望将具有相同功能的模板封装成一个标准控件等,在这些场景下,`winform`自带的控件就有些乏力了,需要我们 ...

在DevExpress的GridView的列中,动态创建列的时候,绑定不同的编辑处理控件

博主头像 在使用DevExpress的GridView的时候,我们为了方便,往往使用一些扩展函数,动态创建GridView列的编辑控件对象,然后我们可以灵活的对内容进行编辑或者使用一些弹出的对话框窗体进行处理内容的录入,本篇随笔就是介绍这一主题:在DevExpress的GridView的列中,动态创建列的时候... ...

C#winform软件移植上linux的秘密,用GTK开发System.Windows.Forms

博主头像 现在.net core的控制台应用程序已经官方支持linux系统了,但是不支持winform界面应用程序,目前来看,微软推出了新框架,也没有支持linux界面开发的意思。所以是不支持原生有界面的.net 软件的,微软语言的软件界面基本都都是windows平台系统绑定的,所用的API基本都封装在Sys... ...

利用代码生成工具快速生成基于SqlSugar框架的Winform界面项目

博主头像 我们接触一个新事物的时候,如果一个事物能够给我们带来非常直观的感官认识,那么我们就很容易接受,反之可能需要很长时间的潜移默化的了解认识才能接受。万物化繁为简,透过本质看表象,往往也是一个认知迭代深入的过程。在我介绍很多篇随笔《SqlSugar开发框架》,能够看完的肯定不会是一开始就学习的人员,毕竟技... ...

在DevExpress的GridView的列中,使用RepositoryItemSearchLookUpEdit控件实现产品列表信息的展示和选择

博主头像 有时候,我们为了方便,我们往往使用扩展函数的代码方式创建很多GridView的操作功能,如在随笔《在DevExpress中使用BandedGridView表格实现多行表头的处理》中介绍过多行表头的创建及绑定处理,在《基于DevExpress的GridControl实现的一些界面处理功能》也介绍了一些... ...

基于SqlSugar的开发框架循序渐进介绍(31)-- 在查询接口中实现多表联合和单表对象的统一处理

博主头像 在一些复杂的业务表中间查询数据,有时候操作会比较复杂一些,不过基于SqlSugar的相关操作,处理的代码会比较简单一些,以前我在随笔《基于SqlSugar的开发框架循序渐进介绍(2)-- 基于中间表的查询处理》介绍过基于主表和中间表的联合查询,而往往实际会比这个会复杂一些。本篇随笔介绍联合多个表进行... ...