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 应用程序的主入口,负责运行主窗口。

相关推荐
以后不吃煲仔饭4 分钟前
Java基础夯实——2.7 线程上下文切换
java·开发语言
进阶的架构师5 分钟前
2024年Java面试题及答案整理(1000+面试题附答案解析)
java·开发语言
前端拾光者9 分钟前
利用D3.js实现数据可视化的简单示例
开发语言·javascript·信息可视化
程序猿阿伟10 分钟前
《C++ 实现区块链:区块时间戳的存储与验证机制解析》
开发语言·c++·区块链
运维老司机17 分钟前
Jenkins修改LOGO
运维·自动化·jenkins
傻啦嘿哟28 分钟前
如何使用 Python 开发一个简单的文本数据转换为 Excel 工具
开发语言·python·excel
大数据编程之光32 分钟前
Flink Standalone集群模式安装部署全攻略
java·大数据·开发语言·面试·flink
初九之潜龙勿用33 分钟前
C#校验画布签名图片是否为空白
开发语言·ui·c#·.net
D-海漠33 分钟前
基础自动化系统的特点
运维·自动化
我言秋日胜春朝★41 分钟前
【Linux】进程地址空间
linux·运维·服务器