Winform入门

摘要

本节课程由宠萌气质狗老师讲解如何在Visual Studio 2022中新建WinForm项目,并详细介绍了项目结构及其关键文件。视频中演示了如何选择.NET Framework框架创建项目,并深入分析了解决方案文件、项目文件、以及WinForm特有的Form1.csForm1.Designer.cs文件,最后解释了C#中"部分类"(partial class)的概念及其在WinForm开发中的应用。

亮点

  • 📁 创建WinForm项目时,首先需要在Visual Studio 2022中选择C#语言和Windows平台,特别强调要选择.NET Framework而非.NET Core,并可指定如4.8的版本 。
  • 📝 项目创建后,会生成一个解决方案文件夹和一个项目文件夹,其中解决方案管理文件(.sln)可以打开整个解决方案,而项目管理文件(.csproj)则可以打开单个项目 。
  • 💻 WinForm项目除了Program.cs(程序入口)外,还会生成Form1.csForm1.Designer.cs两个核心文件,前者是窗体的后台代码文件,后者则包含窗体的设计器生成代码 。
  • 🎨 Form1.cs文件在VS中被映射为可视化设计界面,用户可以通过拖动界面元素或修改右侧属性窗口来直观地改变窗体外观,这些更改会同步反映在Form1.Designer.cs的代码中,实现了"所见即所得"的开发体验 。
  • 💡 Form1.csForm1.Designer.cs之所以能够定义同名的Form1类,是因为它们都使用了partial关键字,将一个类拆分到不同文件中,以实现代码结构清晰和团队协作,编译器在运行时会将这些部分合并为一个完整的类 。
  • App.config :项目的配置文件,用来存储程序运行时的参数(比如数据库连接字符串、日志级别),编译后会生成程序名.exe.config
  • Form1.cs :Winform 窗体的业务逻辑代码文件,你写的按钮点击、数据处理等代码都在这里。
  • Form1.Designer.cs :窗体的设计器自动生成代码文件,包含控件的布局、属性设置(比如按钮的位置、文本),一般不用手动修改。
  • Program.cs :项目的入口文件Main方法就在这里,负责启动 Winform 应用程序(加载 Form1 窗体)。
  • WindowsFormsApp2.csproj :项目的核心管理文件,记录项目依赖的库、编译选项、包含的文件列表等,Visual Studio 通过它识别这是一个 C# 项目。

#WinForm #VisualStudio #PartialClass

思考

  1. 什么是.NET Framework和.NET Core?在创建WinForm项目时为什么选择.NET Framework?
  2. Form1.csForm1.Designer.cs这两个文件各自有什么作用?它们之间是如何协同工作的?
    • Answer : Form1.cs是窗体的后台代码文件,主要用于编写业务逻辑和事件处理代码。Form1.Designer.cs是窗体设计器自动生成的代码文件,用于描述窗体上控件的布局、属性等。它们通过partial(部分类)关键字将同一个Form1类拆分到两个文件中,共同构成了一个完整的窗体类,实现代码分离和协作。

术语解释

  • 解决方案 (.sln): 一个或多个项目(如WinForm项目、控制台项目等)的集合,用于组织和管理相关的项目文件。
  • 项目 (.csproj): 包含源代码、资源、配置文件等的文件集合,用于构建特定的应用程序或库。
  • .NET Framework: 微软开发的软件框架,主要用于在Windows平台上构建应用程序,包括桌面应用(WinForm、WPF)、Web应用等。
  • 可视化设计界面: Visual Studio提供的一个图形化工具,允许开发者通过拖放控件、调整属性等方式,直观地设计应用程序的用户界面。
  • 部分类 (Partial Class) : C#中的一个特性,允许将一个类的定义分散到多个源文件中。在编译时,这些部分会被合并成一个完整的类。在WinForm中,Form1.csForm1.Designer.cs就是典型的部分类应用。
相关推荐
心静财富之门4 小时前
退出 for 循环,break和continue 语句
开发语言·python
txinyu的博客4 小时前
map和unordered_map的性能对比
开发语言·数据结构·c++·算法·哈希算法·散列表
万行4 小时前
机器学习&第四章支持向量机
人工智能·机器学习·支持向量机
Mr -老鬼4 小时前
Rust适合干什么?为什么需要Rust?
开发语言·后端·rust
予枫的编程笔记4 小时前
【Java集合】深入浅出 Java HashMap:从链表到红黑树的“进化”之路
java·开发语言·数据结构·人工智能·链表·哈希算法
larance4 小时前
机器学习的一些基本知识
人工智能·机器学习
ohoy4 小时前
RedisTemplate 使用之Set
java·开发语言·redis
mjhcsp4 小时前
C++ 后缀数组(SA):原理、实现与应用全解析
java·开发语言·c++·后缀数组sa
hui函数4 小时前
如何解决 pip install 编译报错 ‘cl.exe’ not found(缺少 VS C++ 工具集)问题
开发语言·c++·pip