使用100%缩放比例重新启动Visual Studio 界面模糊的解决方案
问题描述建议:如果是刚开始写WinForm项目 ,建议刚开始就去进行一个替换 ,要不然后面会很麻烦的 ,不仅要计算size 还要去 计算 location 的值
昨天碰到了这个问题 ,当时设置完之后界面就非常的模糊 ,虽然说界面变大了 ,但是看着异常难受 ,很模糊
解决方案
新建应用程序清单文件(Application Manifest File) , 保持默认名称 app.manifest,点击添加。
找到这段代码:
12345<application xmlns="urn:schemas-microsoft-com:asm.v3"> <windowsSettings> <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware> </windowsSettings></application>
替换DPI相关配置:
1234 ...
this.Invoke学习笔记
this.Invoke 学习笔记接上一篇《WinForm 串口助手实战笔记》。上一篇里接收数据那段代码,套了一层 this.Invoke,我当时说”照着抄就行”。这一篇专门把这件事讲透,让你不仅会用,还能明白它到底在干嘛。
一、先认识线程程序运行起来后,其实是一根”线”在从上往下一行行执行代码。这根”线”,就叫线程。
一个程序里可以同时有好几根这样的线在跑,各干各的。我们这个串口助手里,主要有两根:
线程
谁在跑
负责什么
界面线程
程序一启动就在
专门管窗口、按钮、文本框这些界面
后台线程
串口收到数据时临时冒出来
专门盯着串口,数据一来就接住
你可以把界面线程理解成”专门管柜台的人”,把后台线程理解成”专门在仓库搬货的人”。
二、为什么串口收到数据,不能直接改界面这里有一条 C# 的硬规矩,一定要记住:
界面上的控件,只有界面线程能碰。
串口收到数据,是”后台线程”接住的。它手里拿着数据,想去改文本框,但文本框是”界面线程”管的,它碰不了。后台线程硬要去碰,程序就直接报错、闪退。
所以问题就来了:数据在后台线程手里,控件却只能界面线程碰,这个矛盾怎么解?
...
WinForm串口助手实战笔记
接上一篇《串口通信入门笔记》。上一篇把五个参数讲明白了,这一篇动手做一个最简版的串口助手窗口。
目标很明确:做出来的程序能选串口、选波特率、打开串口、发数据、看收到的数据、关闭串口。
一、先想清楚界面长什么样界面分四个区域,从上往下:
顶部:两个下拉框(选串口号、选波特率)+ 两个按钮(打开、关闭)
中间:一个大的文本框,专门显示收到的数据
底部:一个输入框(写要发的内容)+ 一个按钮(发送)
对应关系就是这张表:
界面上的东西
控件类型
作用
串口号选择
下拉框 ComboBox
选 COM 几
波特率选择
下拉框 ComboBox
选速度
打开按钮
按钮 Button
打开串口
关闭按钮
按钮 Button
关闭串口
接收显示区
文本框 TextBox
显示收到的数据
发送输入框
文本框 TextBox
输入要发的内容
发送按钮
按钮 Button
把内容发出去
一共 7 个控件,全部用拖的方式放上去,不用写一行界面代码。
二、第一步:新建项目
打开 Visual Studio
菜单里选「文件」→「新建」→「项目」
找模板「Windo ...
串口通信入门笔记
一、串口通信到底在干嘛串口通信,说白了就是两台设备之间接一根线,让它们按约定好的规则互相传数据。
在工业现场最常见的情况是:你的电脑(叫上位机)通过串口去连一台设备(可能是 PLC、传感器、扫码枪、仪表),从它那里读数据,或者给它发指令。
这根线上跑的东西,本质上是一串一串的高低电平。我们写程序要做的,就是告诉电脑:这些电平要按照什么规则去读、去发。
二、先用一个比喻建立直觉想象两个人用对讲机通话。要能顺利听懂对方,得先约好五件事:
用哪个频道
说话语速多快
一句话里几个字
每句话说完怎么停顿
有没有暗号检查自己有没有听错
任何一项对不上,两个人就聊不起来。
串口通信完全一样。这五件事,就是下面要讲的五个参数,收发双方必须完全一致。
三、逐个讲清楚五个参数先记一个小知识点:计算机里最小的单位叫「位」,英文是 bit。8 个位组成一个字节(byte),一个字节差不多就是一个英文字母或一个数字的大小。后面会一直用到。
1. 串口号(PortName)电脑上可能有好几个串口,编号是 COM1、COM2、COM3 这样往下排。
就像一栋楼有好几个门,你要先知道设备插在哪个门。把 ...
EFCore入门学习笔记
前言:EFCore 到底是个啥先记住一句话:
EFCore 就是一个翻译官,专门帮你把 C# 代码翻译成数据库能听懂的 SQL 语句。
你现在写程序,数据都是存在内存里的,程序一关就没了。做上位机、做数据采集,数据是要长期保存的,比如:
设备台账(每台设备的编号、名称、型号)
采集到的历史数据(温度、压力、产量)
报警记录
这些数据都要存到数据库里。数据库只认一种语言,叫 SQL,长这样:
1SELECT * FROM Products WHERE Price > 20;
这行 SQL 的意思是”把价格大于 20 的产品全查出来”。看着还行,但一旦查询变复杂,SQL 就很长、很难写、还容易拼错。
EFCore 干的事,就是让你不用写 SQL,直接用 C# 就能操作数据库。你写 C#,它在背后帮你翻译成 SQL 发给数据库。
打个比方:数据库是一台只会说”数据库黑话”的机器,EFCore 是站在你身边的翻译官。你说普通话(C#),它替你翻译(生成 SQL),再把结果拿回来给你。
用 EFCore 有三大好处:
不用手写 SQL 语句
用你熟悉的 C# 就能增删改查,写法跟操 ...
Lambda表达式入门学习笔记
前言:Lambda 到底是个啥先把这句话记在心里:
Lambda 就是把一个方法写得更短、更偷懒的一种写法。
它本质上还是一个方法,只是省掉了很多啰嗦的格式,让你把”这件事怎么做”用最精炼的方式表达出来。
打个比方。你在工厂里干活,领导让你”把温度超过 80 度的数据挑出来”。按老办法,你得先起个方法名,再写参数类型,再写返回值类型,折腾半天。而 Lambda 就是让你直接把”超过 80 度”这个条件往那一摆就行了,不用再费劲起名字、写一大堆格式。
它长什么样呢?先看一个最简单的样子,混个脸熟:
1x => x + 1
这行代码的意思就是:给我一个数 x,我还你 x 加 1 的结果。就这么简单。
现在你可能还是一头雾水,没关系。接下来我们一步步从你最熟悉的东西讲起,你很快就会明白为什么它要长成这样。
第一步:先回忆一下,方法是什么你在之前的学习里应该已经接触过”方法”了。方法就是一段有名字的代码,你给它起个名字,需要的时候叫它的名字就行。
看一个最简单的加法方法:
12345678910111213141516using System;class Program{ ...
Prism for WPF 启动逻辑详解 —— 从 App.xaml.cs 说起
在 WPF 项目中引入 Prism 框架后,第一个映入眼帘的通常是自动生成的 App.xaml.cs,里面只有寥寥几行代码。然而,这几行代码背后隐藏着整个应用程序的启动脉络。理解它们,是掌握 Prism 开发的第一步。
1. 默认代码长什么样?123456789101112131415/// <summary>/// App.xaml 的交互逻辑/// </summary>public partial class App : PrismApplication{ protected override Window CreateShell() { return new Shell(); } protected override void RegisterTypes(Prism.Ioc.IContainerRegistry containerRegistry) { // 目前是空的 }}
App 类继承自 PrismApplication( ...
百天打卡
自我投资和发展才能赢得尊重
北の百日打卡
2026-07-16 07:24
第03天打卡 ,不要忘记了自己最开始的一个初心 | 体重:74.5 | 体脂:22 | 下午准备去健身房进行锻炼
2026-07-15 05:55
第02天打卡 ,不要忘记了自己最开始的一个初心 | 体重:75 | 体脂:22 | 下午准备去健身房进行锻炼
2026-07-14 17:41
第01天打卡 ,不要忘记了自己最开始的一个初心 | 体重:76 | 体脂:22 | 下午准备去健身房进行锻炼
Navicat 连接本地 SQLServer
起因:今天安装了下Navicat ,想着使用Navicat去进行操作的话会更加的方便些
第一步:选择文件 -> 新建连接 -> 选择SQL Server
第二步:输入连接名 ,主机这里需要复制SQL Server 中的服务器名称
然后输入用户名 ,密码去
用户名:SQLServer 中的登录名
然后测试连接这个时候就能够发现连接上了
后续就能够使用Navicat去进行一个操作了
轻语问题记录
2026-07 问题记录
Docker环境下Flomo同步失败
开启自动同步设置后格式错误问题
Modbus调试软件推荐
ModbusPloo : Modbus主站或Modbus客户端
ModbusSlave : Modbus从站或Modbus服务器
VSPD : 虚拟串口软件 ——> 虚拟出一对串口
串口调试助手
网络调试助手
ADO.NET APP配置文件使用
配置配置文件展示:APP.config
123456<?xml version="1.0" encoding="utf-8" ?><configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" /> </startup></configuration>
使用:
123<connectionStrings> <add name="connectionString" connectionString="Server=.;DataBase=MISDB;Uid=sa;Pwd=123456"/></connectionStrings>
使用后展示:
123456789<?xml version="1. ...
健身日记
请不要把陌生人的些许善意,视为珍稀的瑰宝,却把身边亲近人的全部付出,当做天经地义的事情,对其视而不见。
2025 学习记录
没有天赋 ,那就重复
十二月份学习记录
2025-12-22: P65-P75 基础部分学习
2025-12-22: P76-P116 WinForm部分学习













