【愚公系列】2023年10月 Winform控件专题 Form控件详解

举报
愚公搬代码 发表于 2023/10/30 09:17:07 2023/10/30
【摘要】 🏆 作者简介,愚公搬代码🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,阿里云专家博主,腾讯云优秀博主,掘金优秀博主,51CTO博客专家等。🏆《近期荣誉》:2022年CSDN博客之星TOP2,2022年华为云十佳博主等。🏆《博客内容》:.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物...

🏆 作者简介,愚公搬代码
🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,阿里云专家博主,腾讯云优秀博主,掘金优秀博主,51CTO博客专家等。
🏆《近期荣誉》:2022年CSDN博客之星TOP2,2022年华为云十佳博主等。
🏆《博客内容》:.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。
🏆🎉欢迎 👍点赞✍评论⭐收藏

🚀前言

Winform控件是Windows Forms中的用户界面元素,它们可以用于创建Windows应用程序的各种视觉和交互组件,例如按钮、标签、文本框、下拉列表框、复选框、单选框、进度条等。开发人员可以使用Winform控件来构建用户界面并响应用户的操作行为,从而创建功能强大的桌面应用程序。

🚀一、Form控件详解

Form是Winform中的一个类,用于表示一个窗体窗口。在Winform中,我们可以通过继承Form类来创建自定义的窗体窗口。Form包含了许多属性、事件和方法,可以用于设置和控制窗口的各种属性和行为。

🔎1.属性介绍

🦋1.1 autoscalemode

Winform中的AutoScaleMode属性用于控制当窗体大小发生变化时,窗体上的控件如何自适应调整大小、位置和字体大小等属性。AutoScaleMode有四个枚举值可选,分别是:

  • None:不启用自适应功能。

  • Font:根据窗体字体的大小自适应调整。

  • Dpi:根据显示器的 DPI 缩放比例自适应调整。

  • Inherit:继承父控件的自适应模式。

当使用AutoScaleMode属性时,需要注意以下几点:

  1. 在窗体中添加控件时,需要设置Anchor属性,以便在窗体大小改变时,控件可以相对于窗体边界或其他控件保持相对位置。

  2. 使用Dock和Anchor属性时应慎重,因为这些属性可能会导致控件在自适应过程中出现不可预期的变化。

  3. 在使用AutoScaleMode属性时,还需要注意控件的最小和最大大小限制。如果设置了这些限制,可能会导致自适应调整不到位或者控件无法调整大小。

this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; // 以字体大小为基准进行自适应调整

通过以上设置,当窗体大小发生变化时,窗体上的控件将会自适应调整大小、位置和字体大小等属性。

注意:如果窗体的AutoScaleMode属性设置为Font或Dpi,那么所有控件的Font属性都应该设置为相对大小(例如使用相对大小的字体,如“MS Sans Serif, 8.25pt”),以便在自适应过程中正确调整字体大小。如果控件的Font属性设置为绝对大小(例如设置为12pt,14px等),那么在自适应过程中,控件的字体大小可能会不正确地调整。

🦋1.2 autoscroll

在 WinForms 中,AutoScroll 是一个属性,用于实现自动滚动功能,当控件的内容超出可见区域时,通过自动调整滚动条,使用户能够滚动查看所有内容。下面是 AutoScroll 的基本使用方法:

  1. 设置 AutoScroll 属性为 True:可以在设计时或运行时设置控件的 AutoScroll 属性为 True。例如,对于一个 Form,你可以在属性窗口中找到 AutoScroll 属性并将其设置为 True。

  2. 调整控件大小:确保容器控件(如 FormPanel)的 AutoScroll 属性已经设置为 True。将需要滚动的子控件放置在容器内,并确保子控件的总大小超过了容器的可见区域,这样才会触发自动滚动。

请注意,像 LabelButton 这样的简单控件默认情况下不支持滚动,如果你想滚动这些控件,你需要将其放置在一个可滚动的容器中,比如 Panel。|

以下示例演示了如何在 WinForms 中使用 AutoScroll 属性:

using System;
using System.Drawing;
using System.Windows.Forms;

namespace WinFormsApp
{
    public partial class MainForm : Form
    {
        public MainForm()
        {
            InitializeComponent();

            // 设置 AutoScroll 属性为 True
            this.AutoScroll = true;

            // 添加需要滚动的子控件
            for (int i = 0; i < 20; i++)
            {
                Label label = new Label();
                label.Text = $"Label {i + 1}";
                label.Location = new Point(20, i * 30);
                this.Controls.Add(label);
            }
        }
    }

    static class Program
    {
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new MainForm());
        }
    }
}

在上面的示例中,我们创建了一个 MainForm 类,其中 AutoScroll 属性设置为 True,这样窗口就具备了自动滚动的能力。我们通过循环创建了 20 个 Label 控件,并将他们添加到窗口中。由于窗口的大小和子控件的总大小超过了窗口的可见区域,所以会自动显示滚动条。

运行程序后,你会看到窗口右侧出现了垂直滚动条,你可以使用滚动条来滚动窗口并查看所有的 Label 控件。

这就是 WinForms 中 AutoScroll 属性的基本使用方法,通过这个属性,你可以实现窗口内容的自动滚动。

在这里插入图片描述

🦋1.3 autoscrollmargin

AutoScrollMargin是指定控件周围的边缘空白区域的大小,在此区域内,控件会自动滚动。

在Winform中使用AutoScrollMargin通常需要以下步骤:

  1. 将AutoScroll属性设置为true
  2. 在代码中设置控件的AutoScrollMargin属性,例如:this.AutoScrollMargin = new Size(20, 20);
  3. 在窗体中添加需要滚动的控件或者容器控件,例如:Panel、TabPage、GroupBox等。

当控件或容器控件中的内容超出了自身大小时,就会在AutoScrollMargin区域内自动滚动。

例如,以下代码将创建一个Panel控件,设置自动滚动,并指定AutoScrollMargin为20:

 this.AutoScroll = true;
 this.AutoScrollMargin = new Size(20, 20);
 // 添加需要滚动的子控件
 for (int i = 0; i < 20; i++)
 {
     Label label = new Label();
     label.Text = $"Label {i + 1}";
     label.Location = new Point(20, i * 30);
     this.Controls.Add(label);
 }

在这里插入图片描述

🦋1.4 autoscrollminsize

AutoScrollMinSize是Winform控件中的一个属性,它指定控件自动滚动的最小大小。当控件的内容大于控件的显示区域时,控件会自动滚动以显示尽可能多的内容。可以通过设置AutoScrollMinSize属性来指定控件需要滚动的最小大小。以下是AutoScrollMinSize的基本使用方法:

  1. 在设计时或运行时设置AutoScrollMinSize属性。

在设计时,可以在属性窗口中找到AutoScrollMinSize属性并设置其值。在运行时,可以通过控件的代码来设置AutoScrollMinSize属性,例如:

this.AutoScrollMinSize = new Size(800, 600);
  1. 在需要时启用自动滚动。

当控件的内容超出其显示区域时,控件会自动滚动以显示尽可能多的内容。如果希望控件在内容超出其显示区域时进行自动滚动,则可以设置AutoScroll属性为True,例如:

this.AutoScroll = true;
  1. 在代码中使用AutoScrollPosition属性。

AutoScrollPosition属性用于获取或设置控件的滚动位置。当控件的内容超出其显示区域时,可以使用AutoScrollPosition属性来访问和操作控件的滚动位置,例如:

int x = this.AutoScrollPosition.X;
int y = this.AutoScrollPosition.Y;

在这里插入图片描述

🦋1.5 autosize

在Winform中,AutoSize是控件的一个属性,用于指示控件是否根据其内容自动调整大小。当AutoSize属性为True时,控件大小会自动调整以适应其内容,当为False时,控件大小不会自动调整。

基本使用步骤如下:

  1. 打开Winform窗体,在窗体上添加一个控件

  2. 选择控件,打开其属性窗口,在AutoSize属性中选择True或False

  3. 根据需要在代码中对控件的内容进行修改

  4. 运行程序,查看控件的大小变化

// 设置 AutoScroll 属性为 True
this.AutoScroll = true;
this.AutoSize = true;
this.AutoSizeMode=AutoSizeMode.GrowOnly;
// 添加需要滚动的子控件
for (int i = 0; i < 20; i++)
{
    Label label = new Label();
    label.Text = $"Label {i + 1}";
    label.Location = new Point(20, i * 30);
    this.Controls.Add(label);
}

在这里插入图片描述

🦋1.6 startpostion

Form的StartPosition属性决定了窗体初始化时的位置。常用的选项有:

  1. CenterScreen:将窗体放在屏幕的中央;
  2. Manual:手动设置窗体的位置;
  3. WindowsDefaultLocation:显示在默认的位置,一般为屏幕左上角;
  4. CenterParent:将窗体放在其父窗口的中央,适用于子窗口的情况。

在代码中,可以使用以下语法来设置窗体的StartPosition属性:

this.StartPosition = FormStartPosition.CenterScreen; //将窗体放在屏幕中央
this.StartPosition = FormStartPosition.Manual; //手动设置窗体位置
this.StartPosition = FormStartPosition.WindowsDefaultLocation; //显示在默认位置
this.StartPosition = FormStartPosition.CenterParent; //将窗体放在父窗口中央

在这里插入图片描述

🦋1.7 windowstate

Winform中的WindowState属性用于控制窗口的状态,可以是最小化、最大化或普通状态。WindowState属性有三个可用值:

  1. Normal:窗口处于普通状态,即既不是最小化也不是最大化状态。

  2. Minimized:窗口处于最小化状态,即窗口被最小化到任务栏中。

  3. Maximized:窗口处于最大化状态,即窗口充满整个屏幕。

可以通过设置窗口的WindowState属性来改变窗口的状态,例如:

// 最小化窗口
this.WindowState = FormWindowState.Minimized;

// 最大化窗口
this.WindowState = FormWindowState.Maximized;

// 恢复窗口到普通状态
this.WindowState = FormWindowState.Normal;

此外,还可以通过代码来判断窗口的状态,例如:

if (this.WindowState == FormWindowState.Minimized)
{
    // 窗口处于最小化状态
}
else if (this.WindowState == FormWindowState.Maximized)
{
    // 窗口处于最大化状态
}
else
{
    // 窗口处于普通状态
}

🦋1.8 controlbox和helpcontrol

ControlBox是WinForm窗体上的一个属性,用于指示是否要在窗体标题栏上显示控制按钮。如果设置为True,则窗体将显示默认的最小化、最大化和关闭按钮。如果设置为False,则这些按钮将不显示。

用法示例:

this.ControlBox = true; // 显示控制按钮
this.ControlBox = false; // 不显示控制按钮

在这里插入图片描述

HelpButton是WinForm窗体上的一个属性,用于指示是否在窗体标题栏的右侧显示一个帮助按钮。如果将该属性设置为True,则会在窗体的标题栏上显示一个问号图标,用户单击该按钮时,窗体可以响应帮助请求。

用法示例如下:

this.HelpButton = true; // 显示帮助按钮
this.HelpButton = false; // 不显示帮助按钮

提示:如果需要响应帮助请求,可以使用 HelpRequested 事件来处理该请求。该事件会在单击帮助按钮时发生。 示例如下:

private void Form1_HelpRequested(object sender, HelpEventArgs hlpevent)
{
    // 在此处理帮助请求
    // ...
}

在这里插入图片描述
注意:当maximizebox为false,minimizebox为false,这两个都为false时,helpcontrol才生效。

🦋1.9 icon

在Winform中,Icon用于表示应用程序的图标,可以在标题栏、任务栏、桌面快捷方式等地方显示。以下是Icon的基本使用方法:

  1. 创建一个.ico格式的图标文件,并将其添加到Winform应用程序的资源文件中。

  2. 在窗口的属性中设置Icon属性为资源文件中的图标。

  3. 在代码中可以通过this.Icon属性获取或设置窗口的图标。可以使用其他方法设置Icon,例如:this.Icon = new Icon(“icon.ico”);

  4. 若要更改应用程序的图标,可以在项目属性中的应用程序选项卡中更改图标文件路径。

  5. 如果需要将Icon设置为其他控件的图标,例如Button或Label,可以使用控件的Image属性,并将Icon转换为Image类型,例如:button1.Image = this.Icon.ToBitmap();

可以通过属性ShowIcon:指示是否在窗体得标题栏显示图标。

🦋1.10 IsMdiContainer

IsMdiContainer是指一个窗体是否为多文档界面容器,通常用于实现MDI(Multiple Document Interface)界面。在Winform中,设置一个窗体为多文档界面容器,需要在窗体的属性中将IsMdiContainer属性设置为True。

例如,假设我们有一个名为MainForm的窗体,我们可以在窗体的构造函数中设置IsMdiContainer属性:

public MainForm()
{
    InitializeComponent();
    this.IsMdiContainer = true; //设置为多文档界面容器
}

一旦将窗体设置为多文档界面容器,我们就可以在该窗体中添加子窗体。添加子窗体的方式有两种,一种是在代码中创建一个新的子窗体,另一种是在窗体设计器中创建一个子窗体控件。以第一种方式为例,可以在MainForm窗体中添加一个按钮,点击该按钮创建一个名为ChildForm的子窗体:

private void btnCreateChild_Click(object sender, EventArgs e)
{
    ChildForm childForm = new ChildForm();
    childForm.MdiParent = this; //设置子窗体的父窗体为多文档界面容器
    childForm.Show(); //显示子窗体
    this.LayoutMdi(MdiLayout.Cascade);//指定排列方式
}

在上述代码中,首先创建了一个名为childForm的ChildForm窗体,并通过设置childForm的MdiParent属性将其设置为MainForm的子窗体,最后通过调用childForm的Show方法显示该子窗体。在执行该代码后,点击按钮,就会在MainForm窗体中创建一个ChildForm子窗体,该子窗体可以在MainForm的客户区中移动和调整大小。

🦋1.11 MainMenuStrip

MainMenuStrip是Winform中的一个控件,它通常用于主窗体中,包含一系列菜单和子菜单。以下是使用MainMenuStrip的基本步骤:

1.在设计窗体时,将MainMenuStrip控件拖放到窗体上。

2.在MainMenuStrip中添加菜单和子菜单。可以通过设计器界面或者代码来添加菜单和子菜单。

3.通过事件处理程序响应菜单或子菜单的点击事件,可以在代码中实现对应的功能。

例如,我们可以创建一个名为“File”的菜单,其中包含“New”和“Exit”两个子菜单,然后响应“New”菜单的点击事件,在代码中添加如下代码:

private void newToolStripMenuItem_Click(object sender, EventArgs e)
{
    // 在这里添加处理New菜单点击事件的代码
}

同样,我们也可以响应“Exit”菜单的点击事件,在代码中添加如下代码:

private void exitToolStripMenuItem_Click(object sender, EventArgs e)
{
    Application.Exit();
}

这些就是使用MainMenuStrip的基本步骤,通过它我们可以创建出具有菜单和子菜单的应用程序界面,实现各种功能。

🦋1.12 ShowInTaskbar

ShowInTaskbar是Winform中窗体的一个属性,它决定了窗体是否显示在任务栏中。

当ShowInTaskbar属性为True时,窗体会显示在任务栏中;当ShowInTaskbar属性为False时,窗体不会显示在任务栏中。

在Winform应用程序中,有时需要隐藏一些窗体,比如说主窗体中的一些子窗体。这时可以将子窗体的ShowInTaskbar属性设置为False,这样子窗体就不会出现在任务栏中,用户也无法通过任务栏来切换子窗体。

另外,如果应用程序中需要创建一个系统托盘图标,也可以将窗体的ShowInTaskbar属性设置为False,并在窗体的Load事件中创建托盘图标。这样就能够使应用程序在任务栏中不显示,而在系统托盘中显示一个图标,方便用户进行操作。

总的来说,ShowInTaskbar属性可以根据需要来设置,以实现更加灵活自由的窗体设计。

🦋1.13 SizeGripStyle

SizeGripStyle是Winform中的一个属性,它用于设置窗体右下角的大小调整手柄的样式和位置。

在设计视图中,可以通过在属性面板中选择“SizeGripStyle”属性来设置手柄的样式,常见的有以下几种:

  1. Auto:自动选择合适的样式。默认值为Auto。

  2. Show:显示大小调整手柄,其样式与操作系统有关。

  3. Hide:隐藏大小调整手柄。

  4. BottomRight:将大小调整手柄放置在窗体的右下角。

当设置为BottomRight时,还可以通过SizeGripMargin属性来设置手柄与窗体边缘的距离。

使用SizeGripStyle属性可以方便地实现窗体的大小调整功能,提高用户体验。

🦋1.14 TopMost

在Winform中,TopMost属性是控制窗体是否置顶的一个属性。设置TopMost属性为true时,窗体将置顶并且一直显示在其他窗体之前,直到设置为false为止。

下面是TopMost的基本使用:

1.在Design视图下找到窗体的TopMost属性并设置为true。

2.在代码中使用以下代码将窗体设置为TopMost:

this.TopMost = true;

3.如果需要取消TopMost,使用以下代码:

this.TopMost = false;

需要注意的是,TopMost属性是针对单个窗体的,如果存在多个窗体,需要分别设置每一个窗体的TopMost属性。

🦋1.15 TransparencyKey

TransparencyKey是Winform控件的一个属性,用于设置控件的透明背景色。当控件的背景色与TransparencyKey相同时,在该控件中TransparencyKey所在的位置将会透明。这个属性主要用于制作透明窗体。

基本使用步骤:

  1. 在窗体的构造函数中设置TransparencyKey属性:
public Form1()
{
    InitializeComponent();
    this.TransparencyKey = Color.Gray; //设置透明背景色
}
  1. 设置窗体的BackColor属性为设置的透明背景色:
this.BackColor = Color.Gray;
  1. 在窗体的Paint事件中绘制透明背景,可以使用FillRectangle方法绘制一个和窗体大小相同的矩形:
private void Form1_Paint(object sender, PaintEventArgs e)
{
    e.Graphics.FillRectangle(new SolidBrush(Color.Gray), this.ClientRectangle);
}
  1. 在窗体中添加需要显示的控件,例如Button,设置Button的BackColor属性为透明背景色,设置Text为需要显示的文本。
Button button1 = new Button();
button1.BackColor = Color.Gray;
button1.Text = "Test Button";
button1.Location = new Point(50, 50);
button1.AutoSize = true;
this.Controls.Add(button1);

运行程序,就可以看到窗体背景是透明的,只有Button上显示了文本。

在这里插入图片描述

🦋1.16 DoubleBuffered

在Winform中,双缓冲机制可以有效地避免闪烁和图像失真的问题,提高绘制效率。使用DoubleBuffered可以在控件绘制过程中使用一个缓冲区,当绘制完成时,将缓冲区中的内容一次性绘制到屏幕上,以达到平滑绘制的效果。

使用双缓冲机制可以提高Winform应用程序的绘制效率,只需要在需要使用双缓冲机制的控件上设置DoubleBuffered属性为true即可。例如:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        this.DoubleBuffered = true; // 设置Form双缓冲
    }

    private void Form1_Paint(object sender, PaintEventArgs e)
    {
        // 绘制代码
    }
}

另外,在绘制控件时,也可以使用双缓冲机制,例如:

public partial class MyControl : Control
{
    public MyControl()
    {
        InitializeComponent();
        this.DoubleBuffered = true; // 设置控件双缓冲
    }

    protected override void OnPaint(PaintEventArgs e)
    {
        base.OnPaint(e);
        Graphics g = e.Graphics;
        // 绘制代码
    }
}

🦋1.17 ImeMode

ImeMode属性用于指定控件的输入法编辑器(IME)的行为,它旨在帮助用户更轻松地输入文本。以下是Winform中ImeMode属性的使用方式:

  1. 在设计时,选择要设置ImeMode属性的控件,比如TextBox或RichTextBox。

  2. 在属性窗口中找到ImeMode属性,将其设置为所需值。

常见的ImeMode属性值有:

  • Disable:禁用IME输入。
  • Alpha:只允许输入单字母。
  • Katakana:只允许输入片假名(日文假名)。
  • Hiragana:只允许输入平片假名(日文假名)。
  • Kanji:只允许输入汉字。
  • On:使用默认的IME输入模式。
  1. 运行程序并测试控件的输入行为是否符合预期。

需要注意的是,ImeMode属性只对支持IME输入的语言有效。如果使用其他不支持IME输入的语言,则ImeMode属性不会生效。

🦋1.18 FormBorderStyle

FormBorderStyle属性是Windows Forms中的一个属性,它用于设置表单的边框样式,该属性可以设置为以下五个选项:

  1. None:该选项将使表单没有边框,看起来就像一个空白的窗口。

  2. FixedSingle:该选项将使表单有一个单独的边框。

  3. Fixed3D:该选项将使表单有一个3D效果的边框。

  4. FixedDialog:该选项将使表单有一个对话框样式的边框。

  5. Sizable:该选项将使表单有一个可调整大小的边框。

使用这个属性非常简单,只需在属性窗格中选择所需的选项即可。也可以在代码中使用该属性,如下所示:

this.FormBorderStyle = FormBorderStyle.FixedSingle;

这将设置表单的边框样式为“FixedSingle”。

🦋1.19 RightToLeft和RightToLeftLayout

RightToLeft属性和RightToLeftLayout属性都是Winform中用于支持从右向左显示的属性。其中RightToLeft属性用于控制控件内部的文本方向,而RightToLeftLayout属性用于控制控件本身的布局方向。

RightToLeft属性是针对控件内部的文本方向进行设置的,它有三个枚举类型:No,Yes和Inherit。其中No表示文本方向从左至右,Yes表示文本方向从右至左,Inherit表示从父控件继承文本方向设置。比如,如果设置了一个Button的RightToLeft属性为Yes,则Button控件内部的文本方向会从右至左。

而RightToLeftLayout属性则是针对控件本身的布局方向进行设置的。当设置一个容器控件(例如Panel、GroupBox等)的RightToLeftLayout属性为Yes时,容器内子控件的排列顺序会被调整为从右往左排列。

总的来说,RightToLeft和RightToLeftLayout属性的使用可以使Winform应用程序更好地支持从右往左的显示方式,增加应用程序的可用性。

🦋1.20 AcceptButton和cancelbutton

在WinForms中,AcceptButton和CancelButton是窗体控件的两个属性,它们可以帮助我们管理窗体上的按钮,让我们可以轻松地处理用户输入和操作。

AcceptButton属性用于指定在用户按下回车键时,窗体要执行哪个按钮的Click事件。通常情况下,我们会将AcceptButton属性设置为表单中最主要的操作按钮,例如“确认”或“提交”按钮。这样,用户在输入完毕后按下回车键,就会自动触发该按钮的Click事件。

CancelButton属性用于指定在用户按下ESC键时,窗体要执行哪个按钮的Click事件。通常情况下,我们会将CancelButton属性设置为“取消”或“关闭”按钮,这样用户在窗口操作过程中遇到问题,可以通过按下ESC键来取消操作。

在设置AcceptButton和CancelButton属性时,我们只需要把这两个属性分别设置成窗体上的一个按钮控件即可。例如,我们可以在窗体的构造函数中设置AcceptButton和CancelButton属性,示例代码如下:

public Form1()
{
    InitializeComponent();
    this.AcceptButton = buttonOK;
    this.CancelButton = buttonCancel;
}

在上面的代码中,我们把AcceptButton和CancelButton分别设置成了窗体上的buttonOK和buttonCancel两个按钮控件。这样,当用户按下回车键时,会自动触发buttonOK的Click事件;当用户按下ESC键时,会自动触发buttonCancel的Click事件。

🦋1.21 KeyPreview

KeyPreview属性是Winform中的一个bool类型属性,用于指示窗体是否应该首先处理键盘消息,还是应按照嵌套顺序将其传递给包含的控件。

默认情况下,窗体不处理键盘消息,而是将其传递给包含的控件。但是,如果您需要在窗体级别上处理某些键盘消息(如按Esc键关闭窗体),则可以将KeyPreview属性设置为True,从而使窗体能够首先处理键盘消息。

以下是KeyPreview属性的使用示例:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        this.KeyPreview = true; // 将KeyPreview属性设置为True
    }

    protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
    {
        // 在窗体级别上处理某些键盘消息
        if (keyData == Keys.Escape)
        {
            this.Close();
            return true;
        }
        return base.ProcessCmdKey(ref msg, keyData);
    }
}

在上述示例中,我们在窗体的构造函数中将KeyPreview属性设置为True。然后,我们重写了窗体的ProcessCmdKey方法,在该方法中针对Esc键做了一些处理,并返回True,从而指示窗体已经处理了该键盘消息,不需要将其传递给包含的控件。

🦋1.22 ClientSize

ClientSize是Winform中控件的一个属性,它表示控件的内部大小。通常,它被用于指定一个控件的工作区大小,即不包括边框和标题栏的可用区域。

当你在设计Winform界面时,可能需要设置一个控件的ClientSize属性,以便在该控件中放置其他控件。你可以通过以下步骤来设置一个控件的ClientSize属性:

  1. 选中需要设置ClientSize属性的控件。
  2. 在属性窗口中找到ClientSize属性,并输入想要的宽度和高度值。
  3. 确认修改。

除了在设计界面时设置ClientSize属性外,你还可以在代码中动态设置该属性。例如,你可以使用以下语句来设置一个名为myControl的控件的ClientSize属性:

this.ClientSize = new Size(100, 200);

这将使myControl控件的工作区大小为100像素×200像素。

🔎2.常用场景

Winform中Form控件常用场景包括:

  1. 窗体显示:Form是Winform中最基本的控件之一,用于显示应用程序的窗体。

  2. 应用程序设置:Form可用于显示应用程序的设置窗口。

  3. 对话框:Form可作为对话框使用,用于与用户交互,例如显示警告窗口或确认对话框等。

  4. 菜单栏:Form可用于创建菜单栏并设置菜单项。

  5. 工具栏:Form可用于创建工具栏并设置工具按钮。

  6. MDI应用程序:使用Form可以创建MDI父窗体,作为多文档界面应用程序的主窗口。

  7. 模式窗口:Form可作为模式窗口使用,即在窗体弹出时阻止用户与其它窗体交互。

  8. 自定义窗体:通过在Form上添加其它控件和自定义布局,可以创建各种不同类型的自定义窗体。

🔎3.具体案例

以下是一个简单的Winform中Form控件的案例:

  1. 创建一个Winform应用程序,并在Form1中添加一个Label控件和一个Button控件。

  2. 在Form1.cs文件中添加以下代码:

using System;
using System.Windows.Forms;

namespace WinformFormDemo
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Hello, World!");
        }
    }
}
  1. 在设计视图中,双击Button控件并在事件列表中选择Click事件。添加以下代码:
private void button1_Click(object sender, EventArgs e)
{
    MessageBox.Show("Hello, World!");
}
  1. 运行该应用程序并单击按钮。您应该会看到一个显示“Hello, World!”的消息框。

这个案例演示了Winform中Form控件的使用方法。在这个案例中,我们创建了一个Windows窗体,并向它添加了一个标签和一个按钮控件。当用户单击按钮时,我们弹出一个消息框显示“Hello, World!”的消息。 Form1类是我们的主窗体,它继承自System.Windows.Forms.Form。 我们还使用了Windows Forms设计工具来构建我们的Winform应用程序。

在这里插入图片描述


🚀感谢:给读者的一封信

亲爱的读者,

我在这篇文章中投入了大量的心血和时间,希望为您提供有价值的内容。这篇文章包含了深入的研究和个人经验,我相信这些信息对您非常有帮助。

如果您觉得这篇文章对您有所帮助,我诚恳地请求您考虑赞赏1元钱的支持。这个金额不会对您的财务状况造成负担,但它会对我继续创作高质量的内容产生积极的影响。

我之所以写这篇文章,是因为我热爱分享有用的知识和见解。您的支持将帮助我继续这个使命,也鼓励我花更多的时间和精力创作更多有价值的内容。

如果您愿意支持我的创作,请扫描下面二维码,您的支持将不胜感激。同时,如果您有任何反馈或建议,也欢迎与我分享。

在这里插入图片描述

再次感谢您的阅读和支持!

最诚挚的问候, “愚公搬代码”

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。