跳到主要内容

任务三 对话框

知识点​

1.什么是对话框?​

对话框是Windows人机交互的常用窗口,可以向用户进行信息提示,也可以提供选项供用户选择或等待用户输入,以便更好地执行应用程序。

子任务一 消息框(MessageBox)​

2.MessageBox消息框的作用和语法格式是什么?​

消息框对话框是一个预定义对话框,用来向用户显示应用程序的一些消息提示,如程序执行结果、出错信息等。在C#中,MessageBox位于 System.Windows.Forms 命名空间中。

MessageBox只提供一个方法 Show() 来显示消息对话框:

public static DialogResult MessageBox.Show(string text, string title,
MessageBoxButtons buttons, MessageBoxIcon icon)

参数说明:

  • text:在消息框中提示的信息
  • title:消息框标题栏中的文本
  • buttons:MessageBoxButton枚举值之一,指定显示哪些按钮
  • icon:MessageBoxIcon枚举值之一,指定显示哪个图标
  • 返回值:DialogResult枚举类型

3.MessageBoxButton枚举值有哪些?​

表5-26 MessageBoxButton枚举值及说明

成员名称说明
OK提供"确定"按钮
OKCancel提供"确定"和"取消"两个按钮
AbortRetryIgnore提供"中止""重试"和"忽略"三个按钮
YesNoCancel提供"是""否"和"取消"三个按钮
YesNo提供"是"和"否"两个按钮
RetryCancel提供"重试"和"取消"两个按钮

4.MessageBoxIcon枚举值有哪些?​

表5-27 MessageBoxIcon枚举值及说明

成员名称说明
None消息框未包含符号
Hand红色背景圆圈中有白色×
Question圆圈中有一个问号
Exclamation黄色背景三角形中有感叹号
Asterisk圆圈中有小写字母i
Stop红色背景圆圈中有白色×
Error红色背景圆圈中有白色×
Warning黄色背景三角形中有感叹号
Information圆圈中有小写字母i

5.DialogResult返回值有哪些?​

表5-28 DialogResult枚举值及说明

返回值说明
None从对话框返回了Nothing,表明模式对话框继续运行
OK对话框的返回值是OK(从"确定"按钮发送)
Cancel对话框的返回值是Cancel(从"取消"按钮发送)
Abort对话框的返回值是Abort(从"中止"按钮发送)
Retry对话框的返回值是Retry(从"重试"按钮发送)
Ignore对话框的返回值是Ignore(从"忽略"按钮发送)
Yes对话框的返回值是Yes(从"是"按钮发送)
No对话框的返回值是No(从"否"按钮发送)

6.MessageBox应用示例​

单击按钮后弹出消息框,根据用户单击的不同按钮显示不同的提示:

private void button1_Click(object sender, EventArgs e)
{
DialogResult d;
d = MessageBox.Show("测试一下消息对话框", "测试",
MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Warning,
MessageBoxDefaultButton.Button1);
if (d == DialogResult.Yes)
MessageBox.Show("你单击的为'是'按钮");
else if (d == DialogResult.No)
MessageBox.Show("你单击的为'否'按钮");
else if (d == DialogResult.Cancel)
MessageBox.Show("你单击的为'取消'按钮");
else
MessageBox.Show("你没有进行任何的操作!");
}

子任务二 提示框(ToolTip)​

7.ToolTip提示框的作用是什么?​

ToolTip控件是当用户将鼠标悬停在控件上时显示简短的提示信息。如果在程序设计窗体中添加了ToolTip组件,则程序设计窗体中的所有控件的属性中将自动增加一个ToolTip属性,用于为控件添加提示信息。

8.ToolTip应用示例​

为按钮和文本框设置提示信息:

表5-29 属性设置

对象属性属性值
Button1tooltip"这是一个按钮"
TextBox1tooltip"这是一个文本框"

子任务三 模式对话框​

9.模式窗体和非模式窗体的区别是什么?​

根据Windows窗体的显示状态,可以分为模式窗体和非模式窗体:

  • 模式窗体:该窗体显示时,其他窗体不可用,只有关闭模式窗体后其他窗体才能恢复可用。使用 ShowDialog() 方法显示。
  • 非模式窗体:多个窗体可以同时操作,用户可以单击任何一个窗体。使用 Show() 方法显示。

10.模式窗体和非模式窗体的代码示例​

【例5-15】 以模式窗体显示Form2:

Form2 frm = new Form2(); //实例化窗体对象
frm.ShowDialog(); //以模式窗体显示Form2

【例5-16】 以非模式窗体显示Form2:

Form2 frm = new Form2(); //实例化窗体对象
frm.Show(); //以非模式窗体显示Form2

11.模式对话框与非模式对话框对比​

表5-30 属性设置示例

对象属性属性值
Form1Text模式与非模式
Button1Text打开模式对话框
Button2Text打开非模式对话框
Form2Text我是模式对话框
Form3Text我是非模式对话框
private void button1_Click(object sender, EventArgs e)
{
Form2 frm = new Form2();
frm.ShowDialog(); //模式窗体
}

private void button2_Click(object sender, EventArgs e)
{
Form3 frm = new Form3();
frm.Show(); //非模式窗体
}

子任务四 通用对话框​

12.通用对话框有哪些类型?​

通用对话框是.NET框架提供的一组基于Windows的标准对话框,都是模式对话框,具有通用的方法 ShowDialog()。主要包括:

控件说明
OpenFileDialog标准"打开"对话框,选择要打开的文件
SaveFileDialog标准"另存为"对话框,指定保存路径和文件名
ColorDialog标准"颜色"对话框,选择标准颜色或自定义颜色
FontDialog标准"字体"对话框,设置字体、字形、字号、颜色等

13.OpenFileDialog控件的常用属性有哪些?​

表5-31 OpenFileDialog控件常用属性及说明

属性说明
Filter获取或设置文件名筛选器。格式为"筛选器|筛选器模式",如 "Word文档(*.doc)|*.doc|图片文件(*.jpg;*.gif;*.bmp)|*.jpg;*.gif;*.bmp"
InitialDirectory获取或设置文件对话框显示的初始目录
Multiselect获取或设置是否允许选择多个文件,默认为false

14.SaveFileDialog控件的特有属性有哪些?​

SaveFileDialog控件常用属性大多与OpenFileDialog相同,但没有Multiselect属性。特有属性:

  • CreatePrompt:当用户指定的文件不存在时,是否提示用户允许创建该文件,默认为false。
  • OverwritePrompt:当用户指定的文件名已存在时,是否提示用户允许替换该文件,默认为true。

15.四种通用对话框应用示例​

表5-32 属性设置

对象属性属性值
Button1Text"打开"对话框
Button2Text"另存为"对话框
Button3Text"颜色"对话框
Button4Text"字体"对话框
private void button1_Click(object sender, EventArgs e)
{
openFileDialog1.InitialDirectory = "D:\\"; //设置初始目录
openFileDialog1.Filter = "bmp文件(*.bmp)|*.bmp|gif文件(*.gif)|*.gif|jpg文件(*.jpg)|*.jpg";
//设置只能选择图片文件
openFileDialog1.ShowDialog();
}

private void button2_Click(object sender, EventArgs e)
{
saveFileDialog1.ShowDialog();
}

private void button3_Click(object sender, EventArgs e)
{
colorDialog1.ShowDialog();
}

private void button4_Click(object sender, EventArgs e)
{
fontDialog1.ShowDialog();
}