当前位置: 首页 > news >正文

第一节:基于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(应用程序类)

    • 事件处理(如 ClickLoad)、资源管理(如图标、本地化)


总结

这些分类涵盖了 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的启动方法 方法一&#xff1a; svnserve -d -r /mnt/svn 方法二&#xff1a; svnserve -d --listen-port 3690 -r /mnt/svn 方法三&#xff1a; svnserve -d -r /mnt/svn --listen-host 0.0.0.0 2、首先检查svn服务器是否启动 方法一&#x…...

‌学习DeepSeek V3 与 R1 核心区别(按功能维度分类)

‌一、定位与架构‌ ‌V3&#xff08;通用型模型&#xff09;‌ 定位&#xff1a;多模态通用大模型&#xff0c;擅长文本生成、多语言翻译、智能客服等多样化任务‌12。架构&#xff1a;混合专家&#xff08;MoE&#xff09;架构&#xff0c;总参数 ‌6710 亿‌&#xff0c;每次…...

C++中的 互斥量

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

直接法估计相机位姿

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

PHP动态网站建设

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

libiec61850实战:手把手教你用C语言动态获取IED设备模型(附完整代码)

libiec61850实战&#xff1a;C语言动态解析未知IED设备模型的完整指南 在工业自动化与电力系统通信领域&#xff0c;IEC 61850标准已成为智能电子设备(IED)间交互的通用语言。面对一个未提供完整SCL配置文件的陌生IED设备&#xff0c;如何快速探查其内部数据模型结构&#xff1…...

Git提交规范自动化:Husky与Commitlint提升团队协作效率

1. 项目概述&#xff1a;一个被低估的开发者效率神器 如果你和我一样&#xff0c;每天都要在终端里敲下几十次 git commit -m “fix: xxx” &#xff0c;并且每次都要纠结于提交信息的格式、规范&#xff0c;甚至因为一个拼写错误而不得不重新修改提交&#xff0c;那么你一定…...

免费开源AMD Ryzen处理器调试工具:5分钟掌握SMUDebugTool终极指南

免费开源AMD Ryzen处理器调试工具&#xff1a;5分钟掌握SMUDebugTool终极指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址:…...

在Taotoken模型广场根据任务与预算挑选合适模型的实践心得

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 在Taotoken模型广场根据任务与预算挑选合适模型的实践心得 作为一名日常需要与各类大模型打交道的开发者&#xff0c;模型选型是项…...

DIY改造:为Hakko FX-901烙铁打造USB-C充电电池包

1. 项目概述&#xff1a;打造你的专属USB充电无线烙铁 如果你和我一样&#xff0c;经常需要带着烙铁跑现场——无论是调试RC模型、在Maker Faire上修复作品&#xff0c;还是在户外临时搭建一个电子装置——那你一定对传统无线烙铁的痛点深有体会。四节AA电池&#xff0c;用不了…...

Citra 3DS模拟器:在电脑上重温任天堂掌机经典的完整指南 [特殊字符]

Citra 3DS模拟器&#xff1a;在电脑上重温任天堂掌机经典的完整指南 &#x1f3ae; 【免费下载链接】citra A Nintendo 3DS Emulator 项目地址: https://gitcode.com/GitHub_Trending/ci/citra 想要在Windows、macOS或Linux电脑上体验《精灵宝可梦XY》、《塞尔达传说&am…...

保利商旅诺雅品牌首作,长沙保利橘洲诺雅酒店开业

美通社消息&#xff1a;5月15日&#xff0c;由保利发展湖南公司投资兴建、保利商旅产业发展有限公司运营管理的豪华城市度假品牌——诺雅(ORYARD)首店&#xff1a;长沙保利橘洲诺雅酒店&#xff0c;于湘江之畔正式盛大开业。该项目自2026年2月试营业以来&#xff0c;历经数月的…...

深度学习嵌入操作优化与DAE架构实践

1. 嵌入操作与DAE架构的核心挑战在深度学习推荐系统和图神经网络中&#xff0c;嵌入操作&#xff08;Embedding Operations&#xff09;占据了超过60%的计算时间。这类操作本质上是一种特殊的稀疏-密集张量乘法&#xff08;SpMM&#xff09;&#xff0c;其计算模式具有两个显著…...

基于大语言模型构建智能思考伙伴:从原理到本地部署实践

1. 项目概述&#xff1a;一个“思考伙伴”的诞生最近在GitHub上看到一个挺有意思的项目&#xff0c;叫“thinking-partner”。光看这个名字&#xff0c;你可能会联想到一个聊天机器人&#xff0c;或者一个简单的问答工具。但当我深入去研究这个由 mortiebiennial49 开源的仓库时…...

YOLO26 + PySide6 采油井智能检测系统

基于YOLO26pyside6的采油井系统 代码界面全配齐&#xff01; 核心优势&#xff1a; 1⃣️前沿技术&#xff1a;采用YOLO26深度学习模型&#xff0c;检测精度高、速度快&#xff0c;轻松识别采油井目标&#xff01; 2⃣️功能齐全&#xff1a;含完整训练代码数据集&#xff08…...