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就是典型的部分类应用。
相关推荐
淼淼7636 分钟前
安装jdk1.8
java·开发语言
PfCoder21 分钟前
WinForm真入门(23)---PictureBox 控件详细用法
开发语言·windows·c#·winform
Legendary_00823 分钟前
Type-C 一拖二快充线:突破单口限制的技术逻辑
c语言·开发语言
过期动态29 分钟前
Java开发中的@EnableWebMvc注解和WebMvcConfigurer接口
java·开发语言·spring boot·spring·tomcat·maven·idea
咋吃都不胖lyh31 分钟前
CLIP 不是一个 “自主判断图像内容” 的图像分类模型,而是一个 “图文语义相似度匹配模型”—
人工智能·深度学习·机器学习
csbysj20201 小时前
Web 标准
开发语言
老姚---老姚1 小时前
在windows下编译go语言编写的dll库
开发语言·windows·golang
diediedei1 小时前
模板编译期类型检查
开发语言·c++·算法
穿过锁扣的风1 小时前
零基础入门 Python 爬虫:从基础到实战,爬取虎扑 / 豆瓣 / 图片全掌握
开发语言·爬虫·python
一切尽在,你来2 小时前
C++多线程教程-1.2.1 C++11/14/17 并发特性迭代
开发语言·c++