第一节:基于Winform框架的串口助手小项目---基础控件使用《C#编程》
本人于2025年3月2号学习C#编程,要学会一门编程语言,一定要有一个或多个项目的经验才能对着这门语言有深入的了解,为了深入了解和记录学习C#的学习过程,此文章作为足迹以此记录,为后期巩固学习以及参考奠定基础。内容涉及多篇文章,此片为开篇之作!
作者:WHAPPY。
实验目的:实现一个发送按钮点击发送,能够将发送框的内容发送到接收框
VS版本2022(新建工程之类的就不说了)
基础控件
在视图的工具箱打开即可
C# WinForm 提供了丰富的基础控件,用于创建 Windows 桌面应用程序,以下是一些常见基础控件介绍:
工具箱就是我们经常用到的东西。介绍一下
以下是文件中提到的 Windows 窗体组件分类的详细解释:
1. 公共控件
-
定义:最基础的交互控件,用于用户输入、显示信息或触发操作。
-
常见控件:
-
Label
(标签)、TextBox
(文本框)、Button
(按钮) -
ComboBox
(下拉框)、CheckBox
(复选框)、RadioButton
(单选按钮)
-
-
场景:几乎所有窗体都需要这些控件构建基本交互界面。
2. 容器
-
定义:用于组织和分组其他控件的控件,提供结构化和层级化的布局。
-
常见控件:
-
Panel
(面板)、GroupBox
(分组框)、TabControl
(选项卡) -
SplitContainer
(分割容器)、FlowLayoutPanel
(流式布局面板)
-
-
用途:优化界面布局,例如将相关控件集中在一个分组框中。
3. 菜单和工具栏
-
定义:用于创建应用程序菜单、工具栏或状态栏的组件。
-
常见控件:
-
MenuStrip
(菜单条)、ToolStrip
(工具栏)、StatusStrip
(状态栏) -
ContextMenuStrip
(右键上下文菜单)
-
-
场景:实现文件操作菜单(如“文件→打开”)、快速操作工具栏等。
4. 数据
-
定义:与数据绑定、显示或操作相关的控件和组件。
-
常见控件:
-
DataGridView
(数据表格)、BindingSource
(数据绑定源) -
Chart
(图表控件)、DataSet
(数据集)
-
-
用途:数据库操作、数据可视化(如显示表格或图表)。
5. 组件
-
定义:非可视化组件,用于实现后台功能(如计时、异步操作)。
-
常见组件:
-
Timer
(计时器)、BackgroundWorker
(后台任务) -
FileSystemWatcher
(文件监控)、EventLog
(事件日志)
-
-
场景:定时刷新数据、后台文件处理等。
6. 打印
-
定义:与打印功能相关的类和控件。
-
常见类:
-
PrintDocument
(打印文档)、PrintDialog
(打印对话框) -
PrintPreviewDialog
(打印预览对话框)
-
-
用途:生成打印内容、设置打印参数及预览。
7. 对话框
-
定义:系统预定义的标准对话框,用于文件操作、颜色选择等。
-
常见对话框:
-
OpenFileDialog
(打开文件)、SaveFileDialog
(保存文件) -
ColorDialog
(颜色选择)、FontDialog
(字体选择)
-
-
优势:直接调用系统对话框,提升用户体验一致性。
8. WPF 互操作性
-
定义:在 Windows Forms 中嵌入 WPF 控件(或反之)的技术。
-
关键类:
-
ElementHost
(在 WinForms 中托管 WPF 控件) -
WindowsFormsHost
(在 WPF 中托管 WinForms 控件)
-
-
场景:混合开发时复用 WPF 的富媒体功能(如动画、3D)。
9. 常规
-
定义:基础类或通用功能模块,支撑窗体运行的核心逻辑。
-
示例:
-
Form
(窗体基类)、Application
(应用程序类) -
事件处理(如
Click
、Load
)、资源管理(如图标、本地化)
-
总结
这些分类涵盖了 Windows 窗体开发的全部核心模块:
-
可视化交互:公共控件、容器、菜单工具栏。
-
数据处理:数据组件、打印功能。
-
系统集成:对话框、WPF 互操作性。
-
底层支持:组件、常规类。
开发者可根据需求选择合适的控件和组件,快速构建功能完整的桌面应用程序。
1. Label(标签控件)
-
用途:用于显示静态文本(不可编辑),通常用于标识其他控件的功能(如输入框前的文字说明)。
-
示例:在登录界面中,“用户名:”或“密码:”通常用 Label 显示。
2. TextBox(文本框控件)
-
用途:允许用户输入或编辑单行文本。
-
场景:常用于用户名、密码、搜索框等需要简单文本输入的地方。
-
扩展:密码输入时,可通过设置属性隐藏明文(如
PasswordChar="*"
)。
3. Button(按钮控件)
-
用途:用于触发点击事件(如提交表单、执行操作)。
-
示例:“登录”“确定”“取消”等按钮,点击后会执行对应的逻辑代码。
4. RichTextBox(富文本控件)
-
用途:支持格式化文本(如字体、颜色、图片等)的输入或显示。
-
场景:文本编辑器、邮件撰写界面等需要复杂格式的地方。
-
对比:与普通 TextBox 相比,功能更强大,但资源占用更高。
5. ComboBox(下拉框控件)
-
用途:提供下拉列表供用户选择预定义选项,同时允许手动输入(可选)。
-
场景:选择国家、城市、日期格式等。
-
类型:
-
DropDownList:仅允许选择,不可输入。
-
DropDown:允许选择或输入。
-
代码编写
直接在工具箱拖出需要的控件(仅展示一个控件的,后面一样)
只需关注这个三个即可:工具箱、UI界面(控件放进去地方)、控件的属性
代码编写就更简单了
实验展示
自己编写几个COM口
点击发送会将发送框数据发送到接受框
总结:C#简单灵活的控件使用,解决了很多初始化的代码
相关文章:

第一节:基于Winform框架的串口助手小项目---基础控件使用《C#编程》
本人于2025年3月2号学习C#编程,要学会一门编程语言,一定要有一个或多个项目的经验才能对着这门语言有深入的了解,为了深入了解和记录学习C#的学习过程,此文章作为足迹以此记录,为后期巩固学习以及参考奠定基础。内容涉…...

小红书湖仓架构的跃迁之路
作者:李鹏霖(丁典),小红书-研发工程师,StarRocks Contributor & Apache Impala Committer 本文整理自小红书工程师在 StarRocks 年度峰会上的分享,介绍了小红书自助分析平台中,StarRocks 与 Iceberg 结合后&#x…...

pytorch高可用的设计策略和集成放大各自功能
在使用 PyTorch 编写模型时,为确保模型具备高可用性,可从模型设计、代码质量、训练过程、部署等多个方面采取相应的方法,以下为你详细介绍: 模型设计层面 模块化设计 实现方式:将模型拆分成多个小的、独立的模块,每个模块负责特定的功能。例如,在一个图像分类模型中,可…...

神经网络前向微分和后向微分区别
1. 计算顺序 前向微分(前向模式) 从输入到输出逐层计算:沿计算图的正向顺序(输入层 → 输出层),同时计算函数值和导数。 每一步同步更新导数:每个中间变量的导数随值一起计算,例如&…...

Android 创建一个全局通用的ViewModel
(推荐)使用ViewModelStore 代码示例: class MyApplication : Application(), ViewModelStoreOwner {private val mViewModelStore ViewModelStore()override fun onCreate() {super.onCreate()}override val viewModelStore: ViewModelSto…...

windows 利用nvm 管理node.js 2025最新版
1.首先在下载nvm 下载链接 2. 下载最新版本的nvm 3. 同意协议 注意:选择安装路径 之后一直下一步即可 可以取消勾选 open with Powershell 勾选后它会自动打开Powershell 这里选用cmd 输入以下命令查看是否安装成功 nvm version 查看已经安装的版本 我之前自…...

基于物联网技术的电动车防盗系统设计(论文+源码)
1总体设计 本课题为基于物联网技术的电动车防盗系统,在此将整个系统架构设计如图2.1所示,其采用STM32F103单片机为控制器,通过NEO-6M实现GPS定位功能,通过红外传感器检测电瓶是否离开位,通过Air202 NBIOT模块将当前的数…...

run方法执行过程分析
文章目录 run方法核心流程SpringApplicationRunListener监听器监听器的配置与加载SpringApplicationRunListener源码解析实现类EventPublishingRunListener 初始化ApplicationArguments初始化ConfigurableEnvironment获取或创建环境配置环境 打印BannerSpring应用上下文的创建S…...

关联封号率降70%!2025最新IP隔离方案实操手册
高效运营安全防护,跨境卖家必看的风险规避指南 跨境账号管理的核心挑战:关联封号风险激增 2024年,随着全球电商平台对账号合规的审查日益严苛,“关联封号”已成为跨境卖家最头疼的问题之一。无论是同一IP登录多账号、员工操作失误…...

LeetCode 解题思路 10(Hot 100)
解题思路: 上边: 从左到右遍历顶行,完成后上边界下移(top)。右边: 从上到下遍历右列,完成后右边界左移(right–)。下边: 从右到左遍历底行,完成后…...

ASP.NET Core JWT认证与授权
1.JWT结构 JSON Web Token(JWT)是一种用于在网络应用之间安全传输声明的开放标准(RFC 7519)。它通常由三部分组成,以紧凑的字符串形式表示,在身份验证、信息交换等场景中广泛应用。 2.JWT权限认证 2.1添…...

城市地质安全专题连载⑧ | 强化工程地质安全保障力度,为工程项目全栈护航
作者 | 徐海洋、孙美琴 在城市化进程日益加速的今天,城市地质安全问题日益凸显,成为制约城市可持续发展的关键因素之一。从隧道掘进中的突发灾害,到高层建筑地基的稳定性挑战,再到城市地下空间的开发利用风险,地质安全…...

50.xilinx fir滤波器系数重加载如何控制
, 注意:matlab量化后的滤波器系数为有符号数,它是以补码形式存储的,手动计算验证时注意转换为负数对应数值进行计算。...

低代码平台的后端架构设计与核心技术解析
引言:低代码如何颠覆传统后端开发? 在传统开发模式下,一个简单用户管理系统的后端开发需要: 3天数据库设计5天REST API开发2天权限模块对接50个易出错的代码文件 而现代低代码平台通过可视化建模自动化生成,可将开发…...

QT实现单个控制点在曲线上的贝塞尔曲线
最终效果: 一共三个文件 main.cpp #include <QApplication> #include "SplineBoard.h" int main(int argc,char** argv) {QApplication a(argc, argv);SplineBoard b;b.setWindowTitle("标准的贝塞尔曲线");b.show();SplineBoard b2(0.0001);b2.sh…...

svn 通过127.0.01能访问 但通过公网IP不能访问,这是什么原因?
连接失败的提示如下 1、SVN的启动方法 方法一: svnserve -d -r /mnt/svn 方法二: svnserve -d --listen-port 3690 -r /mnt/svn 方法三: svnserve -d -r /mnt/svn --listen-host 0.0.0.0 2、首先检查svn服务器是否启动 方法一&#x…...

学习DeepSeek V3 与 R1 核心区别(按功能维度分类)
一、定位与架构 V3(通用型模型) 定位:多模态通用大模型,擅长文本生成、多语言翻译、智能客服等多样化任务12。架构:混合专家(MoE)架构,总参数 6710 亿,每次…...

C++中的 互斥量
1.概念: 为什么:线程的异步性,不是按照时间来的!!! C并发以及多线程的秘密-CSDN博客 目的 多线程编程中,当多个线程可能同时访问和修改共享资源时,会导致数据不一致或程序错误。…...

直接法估计相机位姿
引入 在前面的文章:运动跟踪——Lucas-Kanade光流中,我们了解到特征点法存在一些缺陷,并且用光流法追踪像素点的运动来替代特征点法进行特征点匹配的过程来解决这些缺陷。而这篇文章要介绍的直接法则是通过计算特征点在下一时刻图像中的位置…...

PHP动态网站建设
如何配置虚拟主机 1. 学习提纲 本地发布与互联网发布:介绍了如何通过本地IP地址和互联网域名发布网站。 虚拟主机配置与访问:讲解了如何配置虚拟主机,并通过自定义域名访问不同的站点目录。 Web服务器配置:详细说明了如何配置A…...

【gRPC】Java高性能远程调用之gRPC详解
gRPC详解 一、什么是gRPC?二、用proto生成代码2.1、前期准备2.2、protobuf插件安装 三、简单 RPC3.1、开发gRPC服务端3.2、开发gRPC客户端3.3、验证gRPC服务 四、服务器端流式 RPC4.1、开发一个gRPC服务,类型是服务端流4.2、开发一个客户端,调…...

数据结构知识学习小结
一、动态内存分配基本步骤 1、内存分配简单示例: 个人对于示例的理解: 定义一个整型的指针变量p(着重认为它是一个“变量”我觉得可能会更好理解),这个变量用来存地址的,而不是“值”,malloc函…...

分布式锁—2.Redisson的可重入锁一
大纲 1.Redisson可重入锁RedissonLock概述 2.可重入锁源码之创建RedissonClient实例 3.可重入锁源码之lua脚本加锁逻辑 4.可重入锁源码之WatchDog维持加锁逻辑 5.可重入锁源码之可重入加锁逻辑 6.可重入锁源码之锁的互斥阻塞逻辑 7.可重入锁源码之释放锁逻辑 8.可重入锁…...

计算机毕业设计SpringBoot+Vue.js球队训练信息管理系统(源码+文档+PPT+讲解)
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...

FFmpeg入门:最简单的音视频播放器
FFmpeg入门:最简单的音视频播放器 前两章,我们已经了解了分别如何构建一个简单和音频播放器和视频播放器。 FFmpeg入门:最简单的音频播放器 FFmpeg入门:最简单的视频播放器 本章我们将结合上述两章的知识,看看如何融…...

java 查找两个集合的交集部分数据
利用了Java 8的Stream API,代码简洁且效率高 import java.util.stream.Collectors; import java.util.List; import java.util.HashSet; import java.util.Set;public class ListIntersection {public static List<Long> findIntersection(List<Long> …...

【系统架构设计师】以数据为中心的体系结构风格
目录 1. 说明2. 仓库体系结构风格3. 黑板体系结构风格 1. 说明 1.以数据为中心的体系结构风格主要包括仓库体系结构风格和黑板体系结构风格。 2. 仓库体系结构风格 1.仓库(Repository)是存储和维护数据的中心场所。2.在仓库风格中,有两种不…...

通过HTML有序列表(ol/li)实现自动递增编号的完整解决方案
以下是通过HTML有序列表(ol/li)实现自动递增编号的完整解决方案: <!DOCTYPE html> <html> <head> <style> /* 基础样式 */ ol {margin: 1em 0;padding-left: 2em; }/* 方案1:默认数字编号 */ ol.default {list-style-type: dec…...

【Python 数据结构 4.单向链表】
目录 一、单向链表的基本概念 1.单向链表的概念 2.单向链表的元素插入 元素插入的步骤 3.单向链表的元素删除 元素删除的步骤 4.单向链表的元素查找 元素查找的步骤 5.单向链表的元素索引 元素索引的步骤 6.单向链表的元素修改 元素修改的步骤 二、Python中的单向链表 编辑 三…...

基于 vLLM 部署 LSTM 时序预测模型的“下饭”(智能告警预测与根因分析部署)指南
Alright,各位看官老爷们,准备好迎接史上最爆笑、最通俗易懂的 “基于 vLLM 部署 LSTM 时序预测模型的智能告警预测与根因分析部署指南” 吗? 保证让你笑出猪叫,看完直接变身技术大咖!🚀😂 咱们今天的主题,就像是要打造一个“智能运维小管家”! 这个小管家,不仅能提…...