Form是窗口体类
-
命名空间:
System.Windows.Forms
-
继承关系:
Form
类是Control
类的子类,因此它继承了Control
类的所有特性,如位置、大小、颜色等。同时,Form
也继承了ContainerControl
类,允许容纳其他控件。 -
创建窗体:使用
Form
类的构造函数可以创建窗体的实例,例如:Form myForm = new Form();
-
窗体属性:
Form
类提供了许多属性来定制窗体的外观和行为,包括标题、大小、位置、背景颜色、图标、最小化、最大化按钮等。 -
事件处理:可以通过事件处理程序来响应窗体上的各种事件,例如窗体加载、关闭、大小改变等事件。
-
添加控件:
Form
可以容纳其他控件,如按钮、文本框、标签等。通过Controls
属性可以添加和管理这些控件。 -
显示和隐藏:使用
Show()
方法可以显示窗体,使用Hide()
方法可以隐藏窗体。 -
关闭窗体:使用
Close()
方法可以关闭窗体。还可以通过设置窗体的CloseButton
属性来控制关闭按钮的可见性。 -
模态对话框:
Form
类可以用于创建模态对话框,通过ShowDialog()
方法显示模态对话框,该对话框将阻止用户与应用程序的其他部分进行交互,直到对话框关闭。 -
菜单和工具栏:
Form
可以与菜单栏和工具栏一起使用,以创建具有菜单和工具栏的窗体应用程序。 -
多文档界面:
Form
可以用于创建多文档界面 (MDI) 应用程序,其中一个窗体可以容纳多个子窗体。 -
布局管理:可以使用布局管理器来管理窗体上的控件的布局,以便它们可以根据窗体的大小自动调整位置。
一般我们通过继承Form类的形式来自定义我们自己想要的窗体
上面FormRun类是我们的启动程序,MyForm和MyFormCompents描述窗口体的,前者用于描述窗口体里面的各种事件,后者用来描述窗口体里面的空间以及窗口体的属性
这里我要介绍一个关键字partial,该关键字的作用是可以把类拆成多个来描述,这些类的类名都一样
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
//控件类
namespace Project1
{
public partial class MyForm:Form
{
//Form关于窗口体的常用属性
private void InitializeComponent()
{
// 设置窗体标题
this.Text = "第一个窗体";
// 设置窗体大小,这里 W 400 H 300
this.ClientSize = new System.Drawing.Size(400, 300);
// 设置窗体的启动位置为屏幕中央
this.StartPosition = FormStartPosition.CenterScreen;
// 设置窗体背景颜色
this.BackColor = System.Drawing.Color.LightGray;
// 设置窗体的图标,注意这里启动完的文件夹路径为bin/debug/下
this.Icon = new System.Drawing.Icon("../../data/img/0.ico");
// 设置窗体是否可调整大小
this.FormBorderStyle = FormBorderStyle.Sizable;
// 设置窗体关闭按钮的行为
this.ControlBox = true;
// 设置窗体是否在任务栏里面显示
this.ShowInTaskbar = true;
// 设置窗体最大化和最小化按钮是否可见
this.MaximizeBox = true;
this.MinimizeBox = true;
// 设置窗体是否置顶
this.TopMost = true;
// 设置窗体的样式,包括最大化,正常和最小化三种样式
this.WindowState = FormWindowState.Normal;
// 设置窗体的背景图片
this.BackgroundImage = new System.Drawing.Bitmap("../../data/img/back.jpg");
// 设置窗体的文本字体和颜色
this.Font = new System.Drawing.Font("Arial", 12, System.Drawing.FontStyle.Regular);
this.ForeColor = System.Drawing.Color.Black;
}
}
}
//事件类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Project1
{
public partial class MyForm
{
public MyForm()
{
InitializeComponent();
}
}
}
//启动类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Project1
{
internal class FormRun
{
public static void Main(string[] args)
{
Application.Run(new MyForm());
}
}
}
窗口体的绘制
首先需要创建一个画布,对于不同的视图使用不同的会话工具如画笔Pen,刷子SolidBrush等
-
绘制基本图形:
- 绘制线段:使用
Graphics.DrawLine
方法绘制直线。 - 绘制矩形:使用
Graphics.DrawRectangle
方法绘制矩形。 - 绘制椭圆:使用
Graphics.DrawEllipse
方法绘制椭圆。 - 绘制圆角矩形:使用
Graphics.DrawRoundRectangle
方法绘制带有圆角的矩形。
- 绘制线段:使用
-
绘制文本:
- 绘制字符串:使用
Graphics.DrawString
方法绘制文本。 - 自定义字体和颜色:可以指定字体、颜色和对齐方式。
- 绘制字符串:使用
-
绘制图像:
- 绘制位图:使用
Graphics.DrawImage
方法绘制位图。 - 绘制图标:使用
Graphics.DrawIcon
方法绘制图标。
- 绘制位图:使用
-
绘制曲线:
- 绘制贝塞尔曲线:使用
Graphics.DrawBezier
方法绘制平滑的曲线。 - 绘制曲线路径:使用
Graphics.DrawPath
方法绘制复杂的曲线路径。
- 绘制贝塞尔曲线:使用
-
填充:
- 填充矩形:使用
Graphics.FillRectangle
方法填充矩形。 - 填充椭圆:使用
Graphics.FillEllipse
方法填充椭圆。 - 填充多边形:使用
Graphics.FillPolygon
方法填充多边形区域。
- 填充矩形:使用
-
渐变和纹理:
- 线性渐变:可以创建线性渐变画刷并应用于绘图。
- 径向渐变:可以创建径向渐变画刷并应用于绘图。
- 纹理填充:可以使用纹理填充图形。
-
图形变换:
- 平移:通过修改坐标系进行平移。
- 旋转:通过旋转坐标系进行旋转。
- 缩放:通过缩放坐标系进行缩放。
-
透明度和融合:
- 透明度:可以设置图形对象的透明度。
- 混合模式:可以应用混合模式来处理图形的叠加效果。
-
高级绘图:
- 绘制文本路径:可以在曲线上绘制文本。
- 绘制图形路径:可以创建自定义的图形路径进行绘制。
- 阴影和发光效果:可以应用阴影和发光效果来增强图形。
-
图像处理:
- 裁剪图像:可以裁剪位图以获取所需区域。
- 旋转图像:可以旋转位图。
- 缩放图像:可以缩放位图。
这里我们需要增加一个绘画事件并且绑定
this.Paint +=new PaintEventHandler(MyForm_Paint);
private void MyForm_Paint(Object sender,PaintEventArgs e)
{
Graphics g = this.CreateGraphics();
Pen p = new Pen(Color.White);
p.Width = 3;
g.DrawLine(p, 100, 170,180, 200);
g.DrawString("这是第一个窗体",new Font("隶书",30),new SolidBrush(Color.Red),80,200);
g.DrawArc(p, 10, 10, 90, 90, 0, 360);
}
Form大概介绍到这里,大部分控件可以参考官方的文档
标签:Form,c#,简介,System,窗体,Graphics,using,绘制 From: https://www.cnblogs.com/liyiyang/p/17688515.html