WinForm入门(一)
2020-06-12 本文已影响0人
熊爸天下_56c7
WinForms: 基于Win32 API的C#封装
一. 创建hello world
1. 打开VS,创建新项目
![](https://img.haomeiwen.com/i16670204/21bfb8b8db706a5f.png)
2.创建windows窗体应用
![](https://img.haomeiwen.com/i16670204/46ab0e7ee618d2c2.png)
3.选择好存储位置创建即可
![](https://img.haomeiwen.com/i16670204/1667e9f8ecd151da.png)
4.用ctrl+ F5
运行 或用 F5
调试运行
5.调出工具箱
![](https://img.haomeiwen.com/i16670204/4fc3631ffe659531.png)
6. 认识项目目录结构
![](https://img.haomeiwen.com/i16670204/a90c1b3eefd66f36.png)
7. 认识项目解决方案结构
![](https://img.haomeiwen.com/i16670204/f696ed662368f976.png)
8. 用面向对象思维理解form1
Form1这个类是由Form1.cs和Form1.Designer.cs共同组成的
如果之前使用过VB, 这些代码的意义可以理解为把VB那种事件驱动型的思想当成监听事件,然后这些监听事件都是一个类的方法
![](https://img.haomeiwen.com/i16670204/03a0177e93668c34.png)
![](https://img.haomeiwen.com/i16670204/82bb271b3295799a.png)
9. 程序到底是怎么运行的?
首先程序是从Program.cs
开始执行的,执行后进入main
函数
在main函数中执行了Application.Run()
函数,进入第一个窗口
进入第一个窗口后运行构造函数,触发组件初始化函数InitializeComponent()
![](https://img.haomeiwen.com/i16670204/342888aa97d41524.png)
这个InitializeComponent()
函数在MyForm.Designer.cs
中声明, 里面都是界面UI相关的初始化程序等内容
![](https://img.haomeiwen.com/i16670204/799382d280d26d32.png)
10. 用代码创建自己的窗口 //继承Form类的子类
![](https://img.haomeiwen.com/i16670204/98a20db364be9859.png)
![](https://img.haomeiwen.com/i16670204/d69e3d3b646394ca.png)
创建好后我们这样声明这个类:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms; //引入
namespace WindowsForms0201
{
class MyForm:Form //继承于Form
{
public MyForm() //类的构造方法
{
this.Text = "MyForm";
}
}
}
这样我们就创建了自己的窗口, 接下来我们要在程序入口注册这个窗口
![](https://img.haomeiwen.com/i16670204/289d6c13892bfce5.png)
11. 用代码添加控件
思路:
- 创建控件类的实例
- 初始化时,将实例控件加入控制器中
![](https://img.haomeiwen.com/i16670204/12a6306433e6c1f1.png)
运行发现添加好了.
![](https://img.haomeiwen.com/i16670204/3c0dc31f5b3126ba.png)
但在UI设计器中没有看到这个按钮, 因为它是代码在运行过程中生成的.
![](https://img.haomeiwen.com/i16670204/19facbdb927ab78d.png)