c#之Form类简介

发布时间 2023-09-08 20:44:40作者: 突破铁皮

Form是窗口体类

  1. 命名空间System.Windows.Forms

  2. 继承关系Form 类是 Control 类的子类,因此它继承了 Control 类的所有特性,如位置、大小、颜色等。同时,Form 也继承了 ContainerControl 类,允许容纳其他控件。

  3. 创建窗体:使用 Form 类的构造函数可以创建窗体的实例,例如:

    Form myForm = new Form();
  4. 窗体属性Form 类提供了许多属性来定制窗体的外观和行为,包括标题、大小、位置、背景颜色、图标、最小化、最大化按钮等。

  5. 事件处理:可以通过事件处理程序来响应窗体上的各种事件,例如窗体加载、关闭、大小改变等事件。

  6. 添加控件Form 可以容纳其他控件,如按钮、文本框、标签等。通过 Controls 属性可以添加和管理这些控件。

  7. 显示和隐藏:使用 Show() 方法可以显示窗体,使用 Hide() 方法可以隐藏窗体。

  8. 关闭窗体:使用 Close() 方法可以关闭窗体。还可以通过设置窗体的 CloseButton 属性来控制关闭按钮的可见性。

  9. 模态对话框Form 类可以用于创建模态对话框,通过 ShowDialog() 方法显示模态对话框,该对话框将阻止用户与应用程序的其他部分进行交互,直到对话框关闭。

  10. 菜单和工具栏Form 可以与菜单栏和工具栏一起使用,以创建具有菜单和工具栏的窗体应用程序。

  11. 多文档界面Form 可以用于创建多文档界面 (MDI) 应用程序,其中一个窗体可以容纳多个子窗体。

  12. 布局管理:可以使用布局管理器来管理窗体上的控件的布局,以便它们可以根据窗体的大小自动调整位置。

一般我们通过继承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等

  1. 绘制基本图形

    • 绘制线段:使用 Graphics.DrawLine 方法绘制直线。
    • 绘制矩形:使用 Graphics.DrawRectangle 方法绘制矩形。
    • 绘制椭圆:使用 Graphics.DrawEllipse 方法绘制椭圆。
    • 绘制圆角矩形:使用 Graphics.DrawRoundRectangle 方法绘制带有圆角的矩形。
  2. 绘制文本

    • 绘制字符串:使用 Graphics.DrawString 方法绘制文本。
    • 自定义字体和颜色:可以指定字体、颜色和对齐方式。
  3. 绘制图像

    • 绘制位图:使用 Graphics.DrawImage 方法绘制位图。
    • 绘制图标:使用 Graphics.DrawIcon 方法绘制图标。
  4. 绘制曲线

    • 绘制贝塞尔曲线:使用 Graphics.DrawBezier 方法绘制平滑的曲线。
    • 绘制曲线路径:使用 Graphics.DrawPath 方法绘制复杂的曲线路径。
  5. 填充

    • 填充矩形:使用 Graphics.FillRectangle 方法填充矩形。
    • 填充椭圆:使用 Graphics.FillEllipse 方法填充椭圆。
    • 填充多边形:使用 Graphics.FillPolygon 方法填充多边形区域。
  6. 渐变和纹理

    • 线性渐变:可以创建线性渐变画刷并应用于绘图。
    • 径向渐变:可以创建径向渐变画刷并应用于绘图。
    • 纹理填充:可以使用纹理填充图形。
  7. 图形变换

    • 平移:通过修改坐标系进行平移。
    • 旋转:通过旋转坐标系进行旋转。
    • 缩放:通过缩放坐标系进行缩放。
  8. 透明度和融合

    • 透明度:可以设置图形对象的透明度。
    • 混合模式:可以应用混合模式来处理图形的叠加效果。
  9. 高级绘图

    • 绘制文本路径:可以在曲线上绘制文本。
    • 绘制图形路径:可以创建自定义的图形路径进行绘制。
    • 阴影和发光效果:可以应用阴影和发光效果来增强图形。
  10. 图像处理

    • 裁剪图像:可以裁剪位图以获取所需区域。
    • 旋转图像:可以旋转位图。
    • 缩放图像:可以缩放位图。

这里我们需要增加一个绘画事件并且绑定

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大概介绍到这里,大部分控件可以参考官方的文档