- 博客(72)
- 收藏
- 关注
原创 WinForm真入门(7)——Button控件详解
Button(按钮)是 WinForm 中最基础的交互控件,用于触发操作(如:点击登录按钮进入系统)或提交数据(如:写好请假申请后,点击提交,把申请提交给上一级)。以下是其核心功能、高级用法及实践技巧的全面解析:1. 动态创建按钮通过代码生成按钮并绑定事件:2. 自定义按钮样式圆角按钮:覆盖 OnPaint 方法实现自定义绘制:带图标的按钮:使用 Image 和 ImageAlign 属性:3. 防止重复点击在异步操作中禁用按钮,避免重复提交:4. 快捷键绑定通过
2025-04-04 23:15:15
543
原创 WinForm真入门(5)——控件的基类Control
Control 的定义与作用,基类地位:Control 是 System.Windows.Forms 命名空间下的核心基类,所有可视化控件(如 Button、TextBox)和非容器控件(如 Panel、Form)均继承自它。核心功能:提供控件的通用行为,包括位置、大小、渲染、事件处理、消息循环等,是构建用户界面的基石。
2025-04-04 22:36:16
447
原创 WinForm真入门(4)——窗体和控件、属性和事件 的基本概念
前言:既然是WinForm真入门教程,首先是一些基础概念,要先掌握,才能更快德熟悉使用WinForm。概念如果不清,入起门来说 费劲。本章还是基础概念:窗体和控件、属性和事件。这些在Winfom中无处不在,必须牢牢掌握!
2025-04-02 21:47:12
566
原创 C# 中充血模型和贫血模型
在C#中,充血模型(Rich Domain Model)和贫血模型(Anemic Domain Model)是两种截然不同的领域建模方式,核心区别在于业务逻辑的归属。
2025-04-02 20:19:09
798
原创 WinForm真入门(6)——Lable控件详解
Label 是 WinForm 中最基础的文本展示控件,通过灵活使用其属性和事件,可以实现数据绑定、动态样式和复杂交互。掌握透明背景、多行文本和跨线程更新等技巧,可显著提升开发效率和用户体验。
2025-04-01 23:12:12
477
原创 WinForm真入门(3)——窗体设计器
为什么使用窗体设计器?提高开发效率:无需手动编写 UI 初始化代码。直观易用:所见即所得(WYSIWYG)的设计方式。降低错误率:自动生成的代码结构清晰,减少手写错误。
2025-04-01 22:24:20
946
原创 WinForm真入门(2)——ApplicationContext类
ApplicationContext 类为 WinForm 应用程序提供了更细粒度的生命周期控制能力,尤其适合需要管理多窗体或复杂退出逻辑的场景。通过继承与扩展,开发者可灵活定制消息循环行为,提升代码的可维护性
2025-03-31 22:31:28
828
原创 WinFrom真入门(1)——Windows窗体应用概念
用Winform开发的桌面程序,是在Windows操作系统上运行的,这个不用多说。窗体(Form)的作用:窗体是用户交互的容器,承载按钮、文本框等控件,构成应用程序的界面。在Windows操作系统中,窗体(窗口)所处可见,例如:一个标准的窗体其实就是一块矩形区域,客户区域指的是窗口内部区域。除去标题兰和边框外的区域可视为内部区域,称为客户区域。我们开发人员可以在窗口的客户区域中放置控件,也可以在其中绘制出咱们所需要的图形。WinForm程序的项目的结构,如下图:Main()方法是程序的入口,这几行代
2025-03-30 23:51:59
1068
原创 WinForm真入门-简介
WinForm(Windows Forms)是微软基于 .NET Framework 构建的桌面应用程序开发框架,主要用于创建具有图形用户界面(GUI)的 Windows 客户端程序。其核心以窗体(Form)为容器,通过可视化控件和事件驱动模型实现用户交互,适用于企业级工具、本地数据处理和快速原型开发场景
2025-03-30 00:07:19
771
原创 C# 的Lambda表达式常见用法和示例
简洁性:比匿名方法更短的语法。灵活性:支持闭包、异步、表达式树等高级场景。可读性:使代码更接近“做什么”而非“怎么做”。集成性:深度融入 LINQ、异步编程、EF Core 等框架。
2025-03-25 22:53:56
624
原创 C#中的Lambda表达式
Lambda表达式是C#函数式编程的核心工具,通过极简语法和强大功能,显著提升了代码的可读性和灵活性。结合闭包、表达式树和类型推断,它在LINQ、异步操作和高效集合处理中不可或缺。理解其底层机制(如委托分配、闭包行为)和性能影响,有助于编写更健壮、高效的代码。
2025-03-25 22:37:28
1012
原创 C# 匿名方法讲解
在C#中,匿名方法(Anonymous Methods)是一种允许在不显式定义命名方法的情况下,直接内联声明方法体的语言特性。它通过delegate关键字实现,主要用于简化委托(Delegate)的实例化过程,尤其适用于需要临时定义简单方法的场景
2025-03-25 22:16:04
402
原创 C# 属性(Property)详解
在 C# 中,属性(Property) 是类或结构体中的成员,用于封装对私有字段(称为 backing field)的访问,提供更灵活和安全的数据操作方式。属性通过 get 和 set 访问器控制对数据的读写,是面向对象编程中封装思想的核心实践。
2025-03-24 23:47:14
592
原创 串口通信与Modbus通信的区别和联系
串口通信是物理传输的“高速公路”,而Modbus是公路上行驶的“交通规则”。两者结合可实现稳定、标准化的工业设备通信,但也可独立服务于不同场景。
2025-03-23 21:58:30
486
原创 C# 反射(Reflection)详解
C# 反射是处理动态类型和元数据的强大工具,广泛应用于插件系统、序列化、ORM 等场景。尽管其灵活性极高,但需谨慎使用以避免性能问题和代码维护困难。优化策略(如缓存、表达式树)和合理设计(如接口隔离)是高效使用反射的关键。
2025-03-23 21:51:29
814
原创 Winform在工控行业对比Wpf的优势?
WinForms:由于其广泛的使用和较少的依赖性,维护和更新WinForms应用程序通常较为简单。WPF:WPF使用DirectX进行渲染,这通常意味着在某些复杂的图形和动画场景下,WPF可以提供更流畅的体验。然而,在工控环境中,如果界面设计不复杂且主要关注数据展示而非复杂的动画和效果,WinForms的性能优势可能更为明显。它的控件是基于GDI+绘制的,这在某些情况下可以提供更好的性能,尤其是在处理大量图形或控件重绘时。WPF:虽然WPF提供了更现代的开发体验和更好的图形处理能力,但它不是向后兼容的。
2025-03-22 13:56:24
522
原创 C# 集合(Collection)详解以及区别
集合类型 内部结构 时间复杂度(平均) 适用场景List动态数组 索引访问O(1),中间增删O(n) 通用动态数据存储 哈希表查找/插入/删除接近O(1)高频键值查询LinkedList双向链表插入/删除O(1)(需先查找节点)HashSet 哈希表查找/插入/删除O(1)去重、集合运算(交/并集)SortedSet红黑树插入/删除O(log n) 需要有序唯一元素的场景。
2025-03-21 23:42:52
621
原创 C# I/O 核心用法
1、核心原则资源管理:使用 using 或 try/finally 确保资源释放。异常处理:捕获特定异常,避免程序崩溃。性能优化:流式处理大文件,异步避免阻塞。2、适用场景简单操作:优先使用 File 的静态方法。复杂控制:使用 FileStream 或 MemoryMappedFile。跨平台:通过 Path.Combine 处理路径分隔符。掌握这些内容后,可以高效处理各类文件 I/O 需求,并规避常见陷阱。
2025-03-20 23:01:07
1140
原创 C# 资源管理(using 语句)
1、始终用 using 处理一次性对象:避免手动调用 Dispose()。1、对象必须实现 IDisposable:否则无法使用 using。2、优先使用 using 声明(C# 8.0+):简化代码结构。2、静态引入(C# 6.0+):直接引用静态成员。1、别名引入:解决命名冲突。2. 数据库连接。
2025-03-20 22:42:47
970
原创 Winform优化控件布局性能 SuspendLayout 和 ResumeLayout 方法详解
在窗体加载时,向一个 Panel 中动态添加 100 个按钮,并使用 SuspendLayout 避免频繁的界面刷新。在开始批量修改控件前,调用控件的 SuspendLayout 方法,暂停布局逻辑的自动计算。在此阶段进行属性修改、控件添加/删除等操作。ResumeLayout(true) 的作用。SuspendLayout 的作用。try-finally 保障。
2025-03-19 21:51:57
916
原创 C# 中泛型(Generics)的核心概念
在 C# 中,泛型(Generics) 是一种强大的编程特性,允许你编写可重用、类型安全的代码,而无需为不同类型重复编写相似的逻辑。泛型的核心思想是参数化类型,即通过占位符(如 T)表示类型,在编译时确定具体类型。
2025-03-18 22:16:20
819
原创 C# 事件(Event)核心概念
在 C# 中,事件(Event) 是基于委托(Delegate)的机制,用于实现发布-订阅(Publish-Subscribe)模式。事件允许对象(发布者)通知其他对象(订阅者)某个特定动作已发生(如按钮点击、数据更新)。
2025-03-18 21:59:16
1164
原创 C# 委托(Delegate)的核心概念必背知识点
在 C# 中,委托(Delegate) 是一种类型安全的函数指针,允许你将方法作为参数传递、存储或动态调用。委托的核心目的是实现回调机制和事件驱动编程,是 C# 事件(Event)和 LINQ 的基础。
2025-03-18 21:36:15
310
原创 C# ManualResetEvent的高级用法
核心用途:实现多线程间的精确协调和同步。适用场景:需要手动控制信号状态的线程阻塞与释放(如批量任务启动、超时控制)。替代方案:在异步编程中,优先使用 Task、SemaphoreSlim 或 Barrier。
2025-03-17 22:54:56
400
原创 C#多线程(必掌握知识点)
在 C# 中,多线程(Multithreading)是一种允许程序同时执行多个任务的编程技术。通过充分利用 CPU 多核资源,多线程可以显著提升程序的性能和响应速度。
2025-03-17 22:48:11
819
原创 C# 异常处理的核心概念
异常处理的作用:确保程序在错误发生时优雅降级,而不是崩溃。核心语法:try-catch-finally 和 throw。资源管理:优先使用 using 语句,避免资源泄漏。自定义异常:用于明确表达业务逻辑中的错误。通过合理使用异常处理,可以显著提高程序的健壮性和用户体验!
2025-03-16 21:49:48
620
原创 C#接口(Interface)必须掌握的核心概念
在C#编程语言中,接口(Interface)是一个至关重要的概念,它属于引用类型,主要用于指定一组方法,但不提供这些方法的实际实现。接口充当了一种契约或规范,类或其他类型可以通过实现这些接口来遵循这一契约。接口通过interface关键字进行定义,并且可以包含方法、属性、事件和索引器。然而,与类不同的是,接口中的成员默认是public的,且不允许包含字段(即变量)或具体的实现代码(即方法体)。set;在上面的例子中,定义了一个接口,其中包含一个方法MyMethod和一个属性MyProperty。
2025-03-15 22:27:22
642
原创 C#中运算符重载你会用吗?
程序员可以使用用户自定义类型的运算符。重载运算符是具有特殊名称的函数,是通过关键字 operator 后跟运算符的符号来定义的。与其他函数一样,重载运算符有返回类型和参数列表。
2025-03-15 22:00:28
428
原创 C#中多态性核心讲解
在 C# 中,多态性(Polymorphism) 是面向对象编程(OOP)的核心概念之一,指同一操作作用于不同类的对象时,可以产生不同的行为。多态性允许通过统一的接口处理不同类型的对象,提高代码的灵活性和可扩展性。
2025-03-14 23:17:39
330
原创 Navicat SqlServer 设置自增主键
Navicat是一款优秀的数据库管理工具,可以连接很多类型的数据库。使用它可以极大的提高工作效率。
2025-03-14 22:54:03
364
原创 C#中继承的核心定义
继承 是面向对象编程(OOP)的核心特性之一,允许一个类(称为子类/派生类)基于另一个类(称为父类/基类)构建,自动获得父类的成员(字段、属性、方法等),并可通过扩展或修改实现代码复用和多态行为。
2025-03-13 22:13:48
596
原创 C#中类的核心定义
C#类是面向对象编程(OOP)中的核心概念之一,用于定义对象的模板或蓝图,包含数据成员(字段、属性)和函数成员(方法、事件等)。类提供了封装机制,将数据和操作数据的方法组合在一起,隐藏内部实现细节,只对外提供有限的接口,从而提高代码的可维护性和安全性
2025-03-13 22:02:53
678
2
原创 C#枚举(Enum)详解
枚举是一组命名整型常量。枚举类型是使用 enum 关键字声明的。C# 枚举是值类型。换句话说,枚举包含自己的值,且不能继承或传递继承。
2025-03-12 21:56:52
614
原创 C#结构体(Struct)详解
在 C# 中,结构体(struct)是一种值类型(value type),用于组织和存储相关数据。在 C# 中,结构体是值类型数据结构,这样使得一个单一变量可以存储各种数据类型的相关数据。struct 关键字用于创建结构体。在 C# 中,结构体(struct)是一种值类型(value type),用于组织和存储相关数据。在 C# 中,结构体是值类型数据结构,这样使得一个单一变量可以存储各种数据类型的相关数据。struct 关键字用于创建结构体。
2025-03-12 21:37:36
475
原创 一文搞懂C#可空类型(Nullable)及 ? 和 ?? 运算符
C# 提供了一个特殊的数据类型,nullable 类型(可空类型),可空类型可以表示其基础值类型正常范围内的值,再加上一个 null 值。
2025-03-11 23:11:11
568
原创 C#面向对象之《封装》详解(必背知识点)
封装是面向对象编程(OOP)的核心原则之一,其核心目标是将数据(字段)和操作数据的方法(方法)捆绑在类内部,隐藏实现细节,仅通过公共接口(如属性或方法)与外部交互。通过访问修饰符(如 private、public)控制成员的可访问性,确保数据的安全性和完整性
2025-03-10 22:18:57
722
原创 C#常用的循环语句
当你需要遍历数组或集合的所有元素时,使用foreach;当你需要重复执行直到满足某个条件时,使用while或do-while;在使用foreach循环时,通常不修改集合中的元素,因为这将违反集合的预期用途并可能导致运行时错误。如果需要修改元素,请使用索引器或使用其他类型的循环(例如for)。for循环是最常用的循环之一,它由初始化部分、条件表达式和迭代部分组成。do-while循环至少执行一次代码块,然后在每次迭代后检查条件。在使用for和while循环时,确保更新循环变量以避免无限循环。
2025-03-10 21:48:46
589
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人