C#编写WinForm 窗体应用程序(第二期)

简介: 消息框在 Windows 操作系统经常用到,例如在将某个文件或文件夹移动到回收站中时系统会自动弹出如下图所示的消息框。

C# McssageBox

消息框在 Windows 操作系统经常用到,例如在将某个文件或文件夹移动到回收站中时系统会自动弹出如下图所示的消息框。

在 Windows 窗体应用程序中向用户提示操作时也是采用消息框弹出的形式。

消息框是通过 McssageBox 类来实现的,在 MessageBox 类中仅定义了 Show 的多个重载方法,该方法的作用就是弹出一个消息框。

由于 Show 方法是一个静态的方法,因此调用该方法只需要使用MessageBox.Show( 参数 )的形式即可弹出消息框。

消息框在显示时有不同的样式, 例如标题、图标、按钮等。

常用的 Show 方法参数如下表所示image.png

在上面所列出方法的参数中还涉及两个枚举类型,一个是 MessageBoxButtons,一个是 MessageBoxIcon。下面分别介绍这两个枚举类型中的具体值。

MessageBoxButtons 枚举类型主要用于设置消息框中显示的按钮,具体的枚举值如下:

• OK:在消息框中显示“确定”按钮。

• OKCancel:在消息框中显示“确定”和“取消”按钮。

• AbortRetryIgnore:在消息框中显示“中止” “重试”和“忽略”按钮。

• YesNoCancel:在消息框中显示“是” “否”和“取消”按钮。

• YesNo:在消息框中显示“是”和“否”按钮。

• RetryCancel:在消息框中显示“重试”和“取消”按钮。

MessageBoxIcon 枚举类型主要用于设置消息框中显示的图标,具体的枚举值如下:

• None:在消息框中不显示任何图标。

• Hand、Stop、Error:在消息框中显示由一个红色背景的圆圈及其中的白色X组成 的图标。

• Question:在消息框中显示由圆圈和其中的一个问号组成的图标。

• Exclamation、Warning:在消息框中显示由一个黄色背景的三角形及其中的一个感叹号组成的图标。

• Asterisk、Information:在消息框中显示由一个圆圈及其中的小写字母 i 组成的图标。

调用 MessageBox 类中的 Show 方法将返回一个 DialogResult 类型的值。

DialogResult 也是一个枚举类型,是消息框的返回值,通过单击消息框中不同的按钮得到不同的消息框返回值。

DialogResult 枚举类型的具体值如下:

• None:消息框没有返回值,表明有消息框继续运行。

• OK:消息框的返回值是 0K (通常从标签为“确定”的按钮发送)。

• Cancel:消息框的返回值是 Cancel (通常从标签为“取消”的按钮发送)。

• Abort:消息框的返回值是 Abort (通常从标签为“中止”的按钮发送)。

• Retry:消息框的返回值是 Retry (通常从标签为“重试”的按钮发送)。

• Ignore:消息框的返回值是 Ignore (通常从标签为“忽略“的按钮发送)。

• Yes:消息框的返回值是 Yes (通常从标签为“是“的按钮发送)。

• No:消息框的返回值是 No (通常从标签为“否“的按钮发送)。

下面通过实例来演示消息框的应用。

【实例】创建一个窗体,单击该窗体弹出一个消息框提示“是否打开新窗口”,如果单击“是”按钮,则打开新窗口,如果单击“否”按钮,则关闭当前窗体。

根据题目要求,完成该实例需要如下步骤:

(1) 创建所需的窗体(Windows_3)

创建一个名为 Windows_3 的项目,并在该项目中添加两个窗体,分别命名为 MainForm、 MessageForm。

(2) 在 MainForm 中添加事件

在 MainForm 窗体中添加鼠标单击事件,并在相应的事件中添加如下代码:

public partial class MainForm : Form
{
    public MainForm()
    {
        InitializeComponent();
    }
    private void MainForm_MouseClick(object sender, MouseEventArgs e)
    {
        //弹出消息框,并获取消息框的返回值
        DialogResult dr = MessageBox.Show("是否打开新窗体?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
        //如果消息框返回值是Yes,显示新窗体
        if (dr == DialogResult.Yes)
        {
            MessageForm messageForm = new MessageForm();
            messageForm.Show();
        }
        //如果消息框返回值是No,关闭当前窗体
        else if (dr == DialogResult.No)
        {
            //关闭当前窗体
            this.Close();
        }
    }
}

(3) 设置项目的启动窗体

在 Program.cs 文件中将 MainForm 设置为启动窗体,代码如下:

static class Program
{
    /// <summary>
    /// 应用程序的主入口点。
    /// </summary>
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new MainForm());
    }
}

完成上面 3 个步骤后运行窗体,并在窗体上单击鼠标,弹出如下图所示的消息框:


C# Label和LinkLabel

在 Windows 窗体应用程序中,每个窗体都必不可少地会用到文本框和标签控件。

由于在窗体中无法直接编写文本,通常使用标签控件来显示文本。

关于文本框的应用我们将在以后的博客中为大家讲解。

在 Windows 窗体应用程序中,标签控件王要分为普通的标签 (Label) 和超链接形式的标签 (LinkLabel) 。

普通标签 (Label) 控件的常用属性如下表所示:

image.png

普通标签控件 (Label) 中的事件与窗体的事件类似,常用的事件主要有鼠标单击事件、 鼠标双击事件、标签上文本改变的事件等。

与普通标签控件类似,超链接标签控件 (LinkLabel) 也具有相同的属性和事件。

超链接标签主要应用的事件是鼠标单击事件,通过单击标签完成不同的操作,例如在 QQ 窗体中注册账号和找回密码的操作。

下面通过实例来演示标签控件的应用。

【实例】创建一个窗体,在窗体上放置两个普通标签控件 (Label),分别显示“早上好!”和“Good morning!”。

在窗体上通过单击超链接标签 (LinkLabel) 交换这两个标签上显示的信息。

根据题目要求,首先创建一个名为 ChangeTextForm 的窗体,并设置所需控件的属性和事件,实现的代码如下:

public partial class ChangeTextForm : Form
{
    public ChangeTextForm()
    {
        InitializeComponent();
    }
    //超链接标签控件的单击事件
    private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
    {
        //交换标签上的信息。
        string temp = label1.Text;
        label1.Text = label2.Text;
        label2.Text = temp;
    }
}

提示:所需控件可以在工具箱中创建,在控件上右键即可设置相关属性和事件

执行上面的代码,效果如下图所示:

结束语

各位互联网上的同事、同仁、同学们,C# 编写 WinForm 窗体应用程序(第二期)到这里就结束了。

相关文章
|
23天前
|
C#
C# WinForm发送Email邮件
C# WinForm发送Email邮件
C# WinForm发送Email邮件
|
2月前
|
Java 数据库 C#
C#winforms实现windows窗体人脸识别
C#winforms实现windows窗体人脸识别
34 0
|
3月前
|
SQL 数据库连接 应用服务中间件
C#WinForm基础编程(三)
C#WinForm基础编程
79 0
|
3月前
C#WinForm基础编程(二)
C#WinForm基础编程
61 0
|
3月前
|
C# 数据安全/隐私保护
C#WinForm基础编程(一)
C#WinForm基础编程
62 0
|
5月前
|
小程序 C#
C#WinForm实现Loading等待界面
上篇博客中解决了程序加载时屏幕闪烁的问题。 但是,加载的过程变得很缓慢。 这个给用户的体验也不是很好,我这里想加一个Loading的进度条。 项目启动的时候,加载进度条,界面UI加载完毕,进度条消失。
141 0
|
7月前
|
关系型数据库 MySQL C#
C# winform 一个窗体需要调用自定义用户控件的控件名称
给用户控件ucQRCode增加属性: //二维码图片 private PictureBox _pictureBoxFSHLQrCode; public PictureBox PictureBoxFSHLQrCode {   get { return _pictureBoxFSHLQrCode; }   set { this.pictureBoxFSHLQrCode = value; } } 在Form1窗体直接调用即可: ucQRCode uQRCode=new ucQRCode(); ucQRCode.PictureBoxFSHLQrCode.属性= 要复制或传给用户控件上的控件的值
37 0
|
9天前
|
C#
C#如何实现窗体最小化到托盘
C#如何实现窗体最小化到托盘
13 0
|
23天前
|
JavaScript C#
C#winForm程序与html JS交互调用
C#winForm程序与html JS交互调用
|
2月前
|
C# 开发者
35.c#:winform窗口
35.c#:winform窗口
13 1