- 博客(43)
- 收藏
- 关注
原创 winform,运行时与设计时窗体大小不同的问题。
WinForm窗体设计时与运行时大小不一致的问题通常由AutoScaleMode属性引起。该属性用于自动调整窗体尺寸以适应不同DPI或字体设置,可选值包括None(禁用缩放)、Font(默认值,基于字体缩放)、DPI(基于显示器DPI缩放)和Inherit(继承父容器模式)。若需保持设计时固定尺寸,只需将AutoScaleMode设置为None即可解决该问题。这一设置尤其适用于固定分辨率环境或需要自行控制缩放逻辑的场景。
2025-07-15 08:58:41
77
原创 C#上位机之网口通信与协议!
本文介绍了C#中网口通信的基本概念与实现方法,主要包括Socket通信的原理和使用步骤。Socket作为通信端点,支持TCP(可靠连接)和UDP(高效无连接)两种协议类型。文章详细讲解了服务器端与客户端的工作流程,包括创建Socket、绑定端口、监听连接、数据传输等步骤,并提供了C#代码示例。针对单线程处理多客户端连接的局限性,提出了通过Task线程实现并发处理的解决方案,使服务器能够同时响应多个客户端请求。文中还推荐使用网络调试助手软件进行测试,并给出了TCP服务器的实现代码框架。
2025-07-05 10:33:21
1010
原创 C#上位机之Modbus通信协议!
摘要: Modbus是一种主从式通信协议,支持一主多从架构。协议定义了四种存储区:线圈状态(读写)、输入线圈(只读)、输入寄存器(只读)和保持型寄存器(读写)。常用功能码包括读/写线圈(01/05/15)、读输入线圈(02)、读输入寄存器(04)及读/写保持寄存器(03/06/16)。协议分为RTU、ASCII和TCP三种形式。通过ModbusPoll(主站)和ModbusSlave(从站)工具可模拟通信,结合Modbus4库可编程实现数据读写,需注意字节序转换(如浮点数据处理)。RTU和ASCII需串口配
2025-07-03 18:57:01
419
原创 C#上位机串口接口
摘要:本文介绍了C#上位机串口通信的基本概念和使用方法。串口通信具有简单、通用性强等特点,主要参数包括串口号、波特率、数据位、校验位和停止位。文章详细展示了如何通过构造方法和属性设置配置串口参数,包括打开/关闭串口、设置缓存大小和超时时间等操作。同时提供了获取本机串口号、发送数据(字符串或字节)以及多种接收数据方式(读取现有数据、按字节/字符读取、读取到特定字符等)的具体代码示例。这些内容为使用C#进行串口通信开发提供了实用指导。
2025-07-02 22:41:38
257
原创 Async和Await关键字
本文介绍了C#中async和await关键字的使用方法。async用于标记异步方法,await用于等待异步操作完成。同步方法在执行耗时IO操作时会阻塞主线程,导致UI无响应。通过将同步方法改为异步方法(使用Task.Run),可以避免阻塞主线程。关键在于: 异步方法必须返回Task或Task<T>类型 await会暂停当前方法执行但不阻塞线程 不加await时异步方法会立即返回,导致后续代码提前执行 添加await能确保异步操作完成后再执行后续代码 示例展示了同步和异步的不同效果,异步方式能保持
2025-07-01 21:27:27
865
原创 Wpf布局之Canvas面板!
WPF中的Canvas面板通过坐标定位实现精确布局。使用Canvas.Left/Top或Right/Bottom附加属性设置元素位置(不能同时使用对立方向属性),未设置Width/Height时元素自适应内容。通过Canvas.ZIndex控制重叠元素的层级,数值越大显示越上层。示例展示了不同坐标定位的按钮布局及ZIndex的层级效果,适用于需要像素级定位的界面设计场景。
2025-06-29 20:24:17
353
原创 Wpf布局之UniformGrid面板!
UniformGrid是WPF中一种简单均衡的布局控件,与Grid不同,它无需预先定义行列结构。使用时只需设置Rows和Columns属性即可自动均匀分配单元格空间,所有子元素会按顺序等比例排列。示例代码展示了创建2行2列的UniformGrid,内含4个均匀分布的按钮。这种布局适用于需要规整排列但无需精确控制单元格尺寸的场景,但不能像Grid那样自定义单个单元格大小。
2025-06-29 19:04:41
145
原创 Wpf布局之DockPanel面板!
WPF中的DockPanel布局面板允许控件沿边缘分布(顶部、底部、左、右),并通过Dock附加属性设置位置。默认情况下,最后一个控件会填满剩余空间,可通过设置LastChildFill="False"取消该特性。控件布局顺序会影响填充效果,先添加的控件优先占据指定边缘空间。示例代码展示了按钮在四个方向的分布效果,并演示了两种不同填充模式下的界面差异。
2025-06-29 18:50:51
181
原创 Wpf布局之WrapPanel面板!
WPF中的WrapPanel面板是一种自动换行布局容器,默认水平方向(Horizontal)排列控件,从左到右填充一行后自动换行。通过Orientation属性可设置为垂直方向(Vertical),从上到下填充一列后换列。示例代码展示了5个100x100按钮在不同Orientation设置下的排列效果,水平方向会横向换行,垂直方向会纵向换列。该面板适用于需要自动调整控件位置的动态布局场景。
2025-06-29 18:08:20
266
原创 Wpf布局之Border控件!
WPF中的Border控件详解:Border是用于装饰布局的控件,常与布局面板配合使用,为内容添加背景或边框。主要属性包括:Background(背景色)、BorderBrush(边框颜色需配合BorderThickness使用)、BorderThickness(边框宽度)、CornerRadius(圆角效果)和Padding(内容边距)。通过示例代码演示了各属性的实际效果,如设置不同边框宽度、圆角半径以及内容间距。Border控件通过Brush对象实现丰富的样式定制,适用于背景填充、形状着色等场景,是WP
2025-06-29 17:51:03
370
原创 Wpf布局之StackPanel!
摘要:StackPanel是WPF中一种常用的布局容器,用于垂直或水平堆叠元素。默认垂直排列,通过设置Orientation属性可改为水平排列。使用Margin属性可以调整元素间距,支持统一边距(如Margin="10")、单独设置四边边距(如Margin="5,10,15,20")或左右/上下对称边距(如Margin="5,15")。文中通过按钮示例展示了不同排列方式和边距设置的效果。
2025-06-29 15:28:47
214
原创 Wpf之布局属性!
WPF布局属性概述:本文介绍了WPF中继承自FrameWork基类的常用布局属性,包括HorizontalAlignment(水平对齐)、VerticalAlignment(垂直对齐)、Margin(边距)、MinWidth/MinHeight(最小尺寸)、MaxWidth/MaxHeight(最大尺寸)以及Width/Height(固定尺寸)。每个属性都说明了其作用并提供了简单示例代码,帮助开发者控制元素在布局容器中的位置和大小。这些属性是WPF界面布局的关键工具,通过合理使用可以创建灵活的自适应界面。
2025-06-29 13:19:49
172
原创 ASP.Net依赖注入!使用Microsoft.Extensions.DependencyInjection配置依赖注入
本文介绍了ASP.NET中依赖注入(DI)的使用方法。依赖注入是一种降低代码耦合度的设计模式,通过IoC容器自动创建和管理对象。文章详细讲解了使用Microsoft.Extensions.DependencyInjection库配置DI的步骤:首先创建主机并注册服务,然后通过构造函数注入依赖项。示例展示了如何在WinForms应用中使用DI,包括LoginForm和UserService的交互。最后解释了三种服务生命周期:AddSingleton(单例)、AddScoped(作用域)和AddTransien
2025-06-29 12:38:35
1010
原创 Wpf布局之Grid面板!
WPF Grid面板布局详解:Grid面板通过行/列划分区域,使用Grid.RowDefinitions和ColumnDefinitions定义行列结构。通过Grid.Row/Column附加属性定位控件,默认在(0,0)位置。设置ShowGridLines="True"可显示网格线。提供三种尺寸设置方式:1) 绝对尺寸(直接设置宽高数值);2) 自动尺寸(Height/Width="auto"根据内容调整);3) 比例尺寸(使用""符号设置权重,
2025-06-29 11:29:52
411
原创 Wpf之应用图标的修改!
本文将介绍WPF应用程序修改图标的详细步骤:首先准备ico格式图片,然后右击项目属性,在Win32资源中选择浏览图标文件。修改完成后运行程序,在资源管理器中找到.exe文件即可看到图标已更新。整个过程简单易操作,帮助开发者快速自定义应用图标。
2025-06-27 21:28:58
218
原创 Wpf之窗体属性!
本文介绍了WPF窗体常用的属性及其用法。主要内容包括:Title设置窗体标题,Width/Height控制尺寸,SizeToContent自动调整大小,WindowState设置初始状态,WindowStyle改变窗体样式,ResizeMode调整大小模式等。此外还介绍了背景、图标、透明度、置顶、任务栏显示等外观属性,以及数据绑定、加载事件等功能性属性。文章以表格形式呈现,每个属性都配有详细说明和使用示例,特别提醒了Left/Top属性需要配合WindowStartupLocation使用。这些属性是WPF
2025-06-25 22:00:12
414
原创 Wpf之命名空间!
本文介绍了WPF中XAML文件中的命名空间概念。主要讲解了Window元素中常见的命名空间声明,包括默认命名空间(xmlns)和映射到特定前缀的命名空间(如xmlns:x)。默认命名空间的方法可直接使用,而带前缀的命名空间使用时需添加前缀(如x:Name)。此外还说明了"clr-namespace"形式的本地命名空间映射。这些命名空间声明帮助XAML解析器准确识别类来源,避免命名冲突。
2025-06-25 21:34:00
267
原创 Halcon算子的参数位置
本文分析了C#联合Halcon开发中CreateShapeModel算子报错问题。通过解读报错信息和算子参数结构,发现第7个控制参数Contrast(而非Metric)才是实际出错位置。文章指出Halcon算子的参数分为四类:输入图像、输出图像、输入控制和输出控制参数,并以CreateShapeModel为例说明了参数分类方法,强调准确识别参数类型对调试的重要性。最终通过修改Contrast参数解决了报错问题。
2025-06-18 23:37:42
222
原创 使用ListBox 控件时,想要将文件直接拖拽到ListBox控件区域内,显示禁止拖拽标志。
使用ListBox 控件时,想要将文件直接拖拽到ListBox控件区域内,显示禁止拖拽标志。
2024-12-22 11:27:20
240
原创 C# 打包winform项目时报错Unable to build shortcut named ‘ ‘, located in ‘[DesktopFolder]
C# 打包winform项目时报错Unable to build shortcut named ’ ', located in '[DesktopFolder]
2024-12-11 12:28:32
371
原创 C#使用socket报错 System.Net.Sockets.SocketException:“在其上下文中,该请求的地址无效。
C#使用socket报错System.Net.Sockets.SocketException:“在其上下文中,该请求的地址无效。
2024-11-12 20:29:45
1121
原创 OPC协议的介绍(一)
OPC,即面向过程控制的对象链接与嵌入技术(Object Linking and Embedding for Process Control),是微软对象链接与嵌入技术(OLE,现称为Active X)在工业自动化及过程控制领域的具体应用。该技术主要依赖于微软的Active X、组件对象模型(COM)以及分布式组件对象模型(DCOM)来实现不同软件组件间的交互操作。
2024-11-11 22:06:17
1445
原创 C#(winform)将自定义控件生成.dll 文件,并将其引用到其他项目自定义控件库(dll文件)
C#怎么导入自定义的控件?1、生成解决方案2、在文件资源管理器中打开文件夹3、找到bin->Debug下的.dll文件看是否成功生成第一步:点击工具–>选择工具箱项2、点击浏览3、找到上一步生成的.dll文件点击确认4、查看是否成功添加进来,点击确认5、点击工具箱查看是否添加进来了6、添加成功就可以和其他控件一样使用。
2024-11-03 16:21:32
763
原创 Microsoft.Office.Interop”中不存在类型或命名空间名“Excel”(是否缺少程序集引用?)
严重性 代码 说明 项目 文件 行 禁止显示状态 错误 CS0234 命名空间“Microsoft.Office.Interop”中不存在类型或命名空间名“Excel”(是否缺少程序集引用?) StuManageV2 \ExcelPrint\PrintStudent.cs 14 活动。
2024-10-19 15:24:24
1016
原创 C#“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序”的解决方案
C#“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序”的解决方案。
2024-10-19 11:00:25
2427
2
原创 无法打开虚拟机“dk” (): 获取该虚拟机的所有权失败。 主机上的某个应用程序正在使用该虚拟机。 配置文件: 。 是否从库中移除“dk”?
找到虚拟机文件根目录,删除“虚拟机名称.vmx.lck”文件夹。
2024-10-18 11:22:14
312
原创 C# 显示状态 错误 CS0029 无法将类型“string”隐式转换为“System.Windows.Forms.DataGridViewTextBoxColumn” StudentsMemnerg
C# 严重性 代码 说明 项目 文件 行 禁止显示状态错误 CS0029 无法将类型“string”隐式转换为“System.Windows.Forms.DataGridViewTextBoxColumn” StudentsMemnerge 277 活动。
2024-10-07 20:50:32
1005
原创 在使用form表单向后端传入文件类型的数据时后端收不到数据
在使用form表单向后端传入文件类型的数据时要在form标签中添加enctype="multipart/form-data"属性否则后端收不到文件类型的数据。
2024-10-04 09:48:02
407
原创 数据库没有重复的id而且插入的数据也没有重复的id但是使用bulk_create()批量插入数据报错django.db.utils.IntegrityError: UNIQUE constraint
使用Student.objects.bulk_create(stu_list)报错django.db.utils.IntegrityError: UNIQUE constraint failed: db_student.id。
2024-10-03 20:01:01
308
原创 RuntimeError: You called this URL via POST, but the URL doesn’t end in a slash and you have APPEND_S
请求路径最后少了/ 错误:http://localhost:8080/student/add正确:http://localhost:8080/student/add/
2024-10-01 16:17:46
784
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人