C# Window Form 基础

Windows Forms(WinForms)是 .NET 平台中的一种图形用户界面(GUI)框架,用于构建基于桌面应用程序的用户界面。它允许开发人员使用拖放和事件驱动编程模型来快速构建桌面应用程序。以下是关于 Windows Forms 基础的一些介绍,包括其核心组件、事件处理、如何创建一个简单的表单应用程序等。

1.核心概念与组成

a.Form(表单)

• Form 是 Windows Forms 应用程序的核心组件,表示一个窗口。

• 每个 Form 对象对应一个用户界面的窗口,它包含了其他控件,比如按钮、文本框等。

b.控件(Controls)

控件是用户可以与之交互的元素,如按钮、文本框、标签、复选框等。常见控件包括

Button:按钮,用于用户触发某些操作。

TextBox:文本框,允许用户输入文本。

Label:标签,用于显示静态文本。

CheckBoxRadioButton:选择框和单选按钮。

ListBox:列表框,显示列表数据。

c.事件驱动编程

• Windows Forms 使用事件驱动模型,应用程序会等待用户的操作(如点击、键盘输入),并根据操作触发事件。例如,单击按钮会触发 Button.Click 事件,应用程序可以对这些事件进行响应。

2.如何创建一个简单的 Windows Forms 应用程序

a. 创建一个新的 Windows Forms 项目

1.打开 Visual Studio

2.选择 新建项目 ,然后选择 Windows Forms App (.NET Framework)

3.输入项目名称并选择保存位置,然后点击 创建

b. 编写代码:简单的表单应用程序

cs 复制代码
using System;
using System.Windows.Forms;

public class MyForm : Form
{
    // 定义控件
    private Button btnClickMe;
    private Label lblMessage;

    public MyForm()
    {
        // 初始化控件
        btnClickMe = new Button();
        lblMessage = new Label();

        // 设置按钮属性
        btnClickMe.Text = "Click Me!";
        btnClickMe.Location = new System.Drawing.Point(100, 50);
        
        // 按钮点击事件
        btnClickMe.Click += new EventHandler(Button_Click);

        // 设置标签属性
        lblMessage.Text = "Hello, Windows Forms!";
        lblMessage.Location = new System.Drawing.Point(100, 100);
        
        // 将控件添加到表单
        this.Controls.Add(btnClickMe);
        this.Controls.Add(lblMessage);

        // 设置表单的其他属性
        this.Text = "My First Form";
        this.Size = new System.Drawing.Size(300, 200);
    }

    // 按钮点击事件处理程序
    private void Button_Click(object sender, EventArgs e)
    {
        lblMessage.Text = "Button clicked!";
    }

    // 主入口
    public static void Main()
    {
        Application.Run(new MyForm());
    }
}

代码解释:

MyForm 继承自 Form,表示一个窗口。

在构造函数 MyForm() 中,初始化了一个按钮 btnClickMe 和一个标签 lblMessage,并通过 Controls.Add() 方法将它们添加到窗口中。

btnClickMe.Click += new EventHandler(Button_Click):为按钮添加了一个点击事件处理程序,当用户点击按钮时会调用 Button_Click 方法。

Button_Click() 中,当按钮被点击时,标签的文字会被更新为 "Button clicked!"

Application.Run(new MyForm()):启动应用程序并显示窗口。

3.常见的控件与用法

a. Button(按钮)

cs 复制代码
Button btn = new Button();
btn.Text = "Submit";
btn.Location = new System.Drawing.Point(50, 50);
btn.Click += new EventHandler(Button_Click);
this.Controls.Add(btn);

事件处理Click 是按钮的主要事件,触发时执行指定的操作。

b. TextBox(文本框)

cs 复制代码
TextBox txtInput = new TextBox();
txtInput.Location = new System.Drawing.Point(50, 100);
this.Controls.Add(txtInput);

• 用于获取用户输入的文本,可以通过 txtInput.Text 访问文本内容。

c. Label(标签)

cs 复制代码
Label lbl = new Label();
lbl.Text = "Enter your name:";
lbl.Location = new System.Drawing.Point(50, 80);
this.Controls.Add(lbl);

• 用于显示静态文本,不可交互。

d. CheckBox(复选框)

cs 复制代码
CheckBox chkOption = new CheckBox();
chkOption.Text = "Accept terms";
chkOption.Location = new System.Drawing.Point(50, 120);
this.Controls.Add(chkOption);

• 用户可以选择或取消选择,使用 chkOption.Checked 判断是否被选中。

e. ListBox(列表框)

cs 复制代码
ListBox lstItems = new ListBox();
lstItems.Location = new System.Drawing.Point(50, 150);
lstItems.Items.Add("Item 1");
lstItems.Items.Add("Item 2");
lstItems.Items.Add("Item 3");
this.Controls.Add(lstItems);

• 列表框用于显示一系列项目,用户可以从中选择一项或多项。

4.事件驱动编程与处理事件

Windows Forms 应用程序是事件驱动的,这意味着应用程序等待并响应用户的操作,例如单击、输入、选择等。

a. 事件处理程序

事件处理程序是处理用户操作的方法,例如当用户点击按钮时,执行某个方法。

cs 复制代码
private void Button_Click(object sender, EventArgs e)
{
    // 当按钮被点击时执行的操作
    MessageBox.Show("Button was clicked!");
}

事件声明btn.Click += new EventHandler(Button_Click),为按钮的 Click 事件分配处理程序 Button_Click

事件参数 :事件处理程序通常带有两个参数:sender 表示触发事件的控件,e 是事件相关的数据。

5.MessageBox(消息框)

MessageBox 是 Windows Forms 中常用的控件,用于显示消息提示。

cs 复制代码
MessageBox.Show("This is a message!", "Message Box Title", MessageBoxButtons.OK, MessageBoxIcon.Information);

MessageBox.Show 方法用于弹出一个消息框,显示自定义的文本和标题。

MessageBoxButtons 可以指定按钮类型,如 OKYesNo 等。

MessageBoxIcon 可以指定图标类型,如 InformationWarningError。

6.布局与窗口属性

a. 窗口大小与标题

通过以下代码可以设置表单窗口的大小和标题:

cs 复制代码
this.Text = "My Application";  // 设置窗口标题
this.Size = new System.Drawing.Size(400, 300);  // 设置窗口大小

b. 布局管理

Windows Forms 提供了多种控件布局管理器,例如 FlowLayoutPanelTableLayoutPanel,可以让控件自动按照一定规则排列,而不需要手动指定位置

cs 复制代码
FlowLayoutPanel panel = new FlowLayoutPanel();
panel.Dock = DockStyle.Fill;
panel.Controls.Add(btnClickMe);
panel.Controls.Add(lblMessage);
this.Controls.Add(panel);

7.Windows Forms 的启动与关闭

a. 启动应用程序

每个 Windows Forms 应用程序都有一个主入口点,一般是在 Main 方法中调用 Application.Run 来启动应用程序。

cs 复制代码
[STAThread]
public static void Main()
{
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(new MyForm());
}

b. 关闭窗口

可以使用 this.Close() 关闭当前窗口:

cs 复制代码
this.Close();  // 关闭当前窗口

总结

Windows Forms 是一个创建桌面应用程序的快速方法,提供了丰富的控件和事件驱动的编程模型。

• 你可以使用 Form 类来表示窗口,添加各种控件如按钮、文本框、列表框等,并为这些控件添加事件处理程序。

MessageBox 可以用来显示简单的消息对话框,提示用户。

Application.Run() 是启动 Windows Forms 应用程序的主入口,负责运行主窗口。

相关推荐
Jasmine_llq2 分钟前
《 火星人 》
算法·青少年编程·c#
Code哈哈笑4 分钟前
【Java 学习】深度剖析Java多态:从向上转型到向下转型,解锁动态绑定的奥秘,让代码更优雅灵活
java·开发语言·学习
程序猿进阶7 分钟前
深入解析 Spring WebFlux:原理与应用
java·开发语言·后端·spring·面试·架构·springboot
Youkiup9 分钟前
【linux 常用命令】
linux·运维·服务器
qq_4336184410 分钟前
shell 编程(二)
开发语言·bash·shell
qq_2975046113 分钟前
【解决】Linux更新系统内核后Nvidia-smi has failed...
linux·运维·服务器
_oP_i18 分钟前
.NET Core 项目配置到 Jenkins
运维·jenkins·.netcore
charlie11451419124 分钟前
C++ STL CookBook
开发语言·c++·stl·c++20
袁袁袁袁满24 分钟前
100天精通Python(爬虫篇)——第113天:‌爬虫基础模块之urllib详细教程大全
开发语言·爬虫·python·网络爬虫·爬虫实战·urllib·urllib模块教程
weixin_4373982126 分钟前
Linux扩展——shell编程
linux·运维·服务器·bash