第 6 章 窗体应用程序设计
DESCRIPTION
第 6 章 窗体应用程序设计. 王德俊 上海交通大学继续教育学院. 第 6 章 窗体应用程序设计. 6.1 概述 6.2 组件的公共属性、事件和方法 6.3 常用的控件 6.4 常用的对话框 6.5 消息对话框 6.6 菜单和工具栏的设计. 6.4 常用的对话框. 6.4.1 打开和保存文件对话框 6.4.2 字体对话框和颜色对话框 6.4.3 文件夹浏览对话框. 6.4.1 打开和保存文件对话框. 1 打开文件对话框 2 保存文件对话框. 1 打开文件对话框. - PowerPoint PPT PresentationTRANSCRIPT
第第 66 章 窗体应用程序设计章 窗体应用程序设计
王德俊
上海交通大学继续教育学院
应用软件开发( C# ) 第 6 章 窗体应用程序设计
第第 66 章 窗体应用程序设计章 窗体应用程序设计
6.1 概述
6.2 组件的公共属性、事件和方法
6.3 常用的控件
6.4 常用的对话框
6.5 消息对话框
6.6 菜单和工具栏的设计
应用软件开发( C# ) 第 6 章 窗体应用程序设计
6.4 常用的对话框
6.4.1 打开和保存文件对话框
6.4.2 字体对话框和颜色对话框
6.4.3 文件夹浏览对话框
应用软件开发( C# ) 第 6 章 窗体应用程序设计
6.4.1 6.4.1 打开和保存文件对话框打开和保存文件对话框
1 打开文件对话框
2 保存文件对话框
应用软件开发( C# ) 第 6 章 窗体应用程序设计
1 1 打开文件对话框打开文件对话框
打开文件对话框( OpenFileDialog )用于显示让用户定位文件和选择文件的对话框,其作用是方便、快速地让用户找到文件的路径。
应用软件开发( C# ) 第 6 章 窗体应用程序设计
在命名空间 System.Windows.Forms 中封装了一个类OpenFileDialog , C #中的选择文件对话框就是继承于这个类
例如:
OpenFileDialog openFileDialog1 = new OpenFileDialog ( ) ;
应用软件开发( C# ) 第 6 章 窗体应用程序设计
常用属性常用属性属性名称 说 明
InitialDirectory 设置在对话框中显示的初始目录
Filter设定对话框中过滤文件字符串 , ,即设置的字符
串决定了哪些类型的文件能在对话框中可见。FileName 设定在对话框中选择的文件名称
Title 设定对话框的标题FilterIndex 设定显示的字符串的索引。
Multiselect为 true (默认值为 false )时,允许在
OpenFileDialog 对话框中选择多个文件(通过按 Ctrl 键来选择多个文件)。
SafeFileNames
为字符串数组类型( string [] )。当Multiselect 属性被设置为 true 时,可选择多个文件,而被选中的文件的文件名则保存在此属性中。
应用软件开发( C# ) 第 6 章 窗体应用程序设计
常用方法常用方法
ShowDialog() 方法当调用该方法时会弹出对话框。
当点击对话框中的打开按钮时该函数返回 DialogResult.OK ;
当点击取消按钮时则该函数返回 DialogResult.Cancel 。
常用方式:
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
// 相关代码
}
应用软件开发( C# ) 第 6 章 窗体应用程序设计
1 1 打开文件对话框打开文件对话框以下打开文件对话框常用的、相对完整的代码:openFileDialog1.InitialDirectory = "C:\\";openFileDialog1.Filter = "txt 文件 (*.txt)|*.txt|rtf 文件 (*.rtf)|*.rtf|All files
(*.*)|*.*";openFileDialog1.FilterIndex = 3;openFileDialog1.Title = " 我的打开文件对话框 ";if (openFileDialog1.ShowDialog() == DialogResult.OK){ int pos = openFileDialog1.FileName.LastIndexOf('\\'); // 获取文件的路径(不含文件名) string dirpath = openFileDialog1.FileName.Substring(0, pos); string filename = openFileDialog1.FileName.Substring(pos+1); // 获取文
件名 // 其他处理代码}
应用软件开发( C# ) 第 6 章 窗体应用程序设计
2 2 保存文件对话框保存文件对话框
保存文件对话框( SaveFileDialog )让用户为保存文件而定位到相应目录下的对话框。
SaveFileDialog 对话框也有 ShowDialog() 方法以及InitialDirectory 、 Filter 等属性,其意义与 OpenFileDialog 对话框的相同。
应用软件开发( C# ) 第 6 章 窗体应用程序设计
两个重要的属性两个重要的属性
OverwritePrompt 属性为 true (默认值)时,如果在“文件名”组合框中设置的文件名与当前目录下的某一个文件名相同,则系统会给出一个文件已重名的提示框。
AddExtension 属性为 true (默认值)时,如果用户在“文件名”组合框中没有指定文件的扩展名,则系统会自动添加由“文件类型”组合框选中的扩展名(除非选中的是 .* 类型文件)。
应用软件开发( C# ) 第 6 章 窗体应用程序设计
主要方法和属性分别是 ShowDialog() 方法和 Font 属性。
用户选择的字体保存在 FontDialog 控件的 Font 属性中,将该属性值直接赋给 TextBox 的 Font 属性可改变 TextBox 中的字体,如 :
if (fontDialog1.ShowDialog() == DialogResult.OK)
{
richTextBox1.SelectionFont = fontDialog1.Font;
}
6.4.2 字体对话框和颜色对话框
6.4常用的对话框
应用软件开发( C# ) 第 6 章 窗体应用程序设计
““ 颜色”对话框颜色”对话框
主要方法和属性分别是 ShowDialog() 方法和 Color 属性。
“ 颜色”对话框将用户选择的颜色保存在 Color 属性中,将它赋给 TextBox 的 ForeColor 属性可改变字体的颜色,例如:
if (colorDialog1.ShowDialog() == DialogResult.OK)
{
richTextBox1.SelectionColor = colorDialog1.Color;
}
应用软件开发( C# ) 第 6 章 窗体应用程序设计
6.4.3 文件夹浏览对话框6.4常用的对话框
文件夹浏览对话框( FolderBrowserDialog )用于方便、快速地定位到相应的文件夹,并获取该文件夹的绝对路径。其主要方法 ShowDialog(), 该方法执行下列语句会弹出文件夹浏览对话框:
if (folderBrowserDialog1.ShowDialog() == DialogResult.OK){ // 相应处理代码}
应用软件开发( C# ) 第 6 章 窗体应用程序设计
常用属性常用属性
属性 说明
ShowNewFolderButton
为 true (默认值)时,在对话框的左下角显示【新建文件夹】按钮。利用该按钮可以在选定的文件夹下创建子文件夹。
Description
为 string 类型,用于描述对话框。例如:folderBrowserDialog1.Description = " 文件夹浏
览器 ";
RootFolder
用于指定对话框要浏览的根文件夹,例如,下面语句指示对话框以逻辑桌面为浏览的根文件夹:
folderBrowserDialog1.RootFolder = Environment.SpecialFolder.Desktop;
SelectedPath当在对话框中选择相应的文件夹并单击【确定】按钮
( ShowDialog() 方法返回 DialogResult.OK )时,该属性将返回被选中文件夹的绝对路径。
应用软件开发( C# ) 第 6 章 窗体应用程序设计
6.5 消息对话框
消息对话框一般用于在程序运行过程中显示相关提示信息,以增加程序与用户的交互能力。
C# 提供了实现消息对话框功能的多种途径。实际上,打开和保存文件对话框等都属于消息对话框。
应用软件开发( C# ) 第 6 章 窗体应用程序设计
6.5 消息对话框
6.5.1 模式对话框与非模式对话框
6.5.2 基于 MessageBox 类的消息对话框
应用软件开发( C# ) 第 6 章 窗体应用程序设计
对话框可分为模式对话框和非模式对话框两种
模式对话框:用户只能在当前的窗体中进行操作,在该窗体关闭之前不能切换到其他窗体
非模式对话框:当前所操作的窗体可以切换
两者区别是在对话框被关闭之前用户能否在同一应用程序的其他地方进行工作
一般情况下,用于确认信息操作和一般操作的对话框属于模式对话框
6.5.1 模式对话框与非模式对话框6.5 消息对话框
应用软件开发( C# ) 第 6 章 窗体应用程序设计
非模式对话框非模式对话框
C# 的 Form 类中,使用 Show 方法实现非模式窗体显示
通常情况下,窗体的显示为非模式显示
例如:
Form2 frm=new Form2();
frm.Show(); // 显示非模式窗体 Form2
应用软件开发( C# ) 第 6 章 窗体应用程序设计
模式对话框模式对话框
模式窗体的显示通过 ShowDialog 方法实现
例如:
Form2 frm=new Form2();
frm.ShowDialog(); // 显示模式窗体 Form2
应用软件开发( C# ) 第 6 章 窗体应用程序设计
消息框一般用于在程序运行过程中显示提示信息
C# 中通过 MessageBox 类实现消息框的定义
MessageBox 类提供了静态方法 Show 来显示消息框,有多种形式实现消息框的显示
(1) 显示指定文本的消息框
(2) 显示指定文本和标题的消息框
(3) 显示具有指定文本、标题和按钮的消息框
(4) 显示具有指定文本、标题、按钮和图标的消息框
6.5.2 基于 MessageBox 类的消息对话框
应用软件开发( C# ) 第 6 章 窗体应用程序设计
(1) (1) 显示指定显示指定文本文本的消息框的消息框
格式:
public static DialogResult Show(string);
例如:
MessageBox.Show(" 我要去参观上海世博会! ");
应用软件开发( C# ) 第 6 章 窗体应用程序设计
(2) (2) 显示指定显示指定文本和标题文本和标题的消息框的消息框
格式:
public static DialogResult Show(string, string);
例如:
MessageBox.Show(" 我要去参观上海世博会! ", " 上海世博会 ");
应用软件开发( C# ) 第 6 章 窗体应用程序设计
(3) (3) 显示具有指定显示具有指定文本、标题和按钮文本、标题和按钮的消息框的消息框
格式:
public static DialogResult Show(string, string, MessageBoxButtons);
MessageBoxButtons 用于描述显示的按钮
值必须是 MessageBox 类中按钮的枚举类型中的一个
应用软件开发( C# ) 第 6 章 窗体应用程序设计
MessageBoxButtonsMessageBoxButtons 枚举类型枚举类型
成员名称 说明AbortRetryIgno
re消息框包含“中止”、“重试”和“忽略” 3 个按钮
OK 消息框仅包含“确定”按钮
OKCancel 消息框包含“确定”和“取消” 2 个按钮
RetryCancel 消息框包含“重试”和“取消” 2 个按钮
YesNo 消息框包含“是”和“否” 2 个按钮
YesNoCancel 消息框包含“是”、“否”和“取消” 3 个按钮
应用软件开发( C# ) 第 6 章 窗体应用程序设计
MessageBoxButtonsMessageBoxButtons 枚举类型枚举类型
例如:
if (MessageBox.Show("你要去参观上海世博会吗? ", " 上海世博会 ", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
// 相应处理的代码
}
应用软件开发( C# ) 第 6 章 窗体应用程序设计
(4) (4) 显示具有指定显示具有指定文本、标题、按钮和图标文本、标题、按钮和图标的消息框的消息框
格式:
public static DialogResult Show(string, string, MessageBoxButtons, MessageBoxIcon);
添加图标的消息框根据MessageBoxIcon枚举类型确定
应用软件开发( C# ) 第 6 章 窗体应用程序设计
图标 说明Asterisk 消息框包含一个符号,由一个圆圈及其中的小写字母 i组成
Error 消息框包含一个符号,由一个红色背景的圆圈及其中的白色 X 组成
Exclamation 消息框包含一个符号,由一个黄色背景的三角形及其中的一个感叹号组成
Hand 消息框包含一个符号,由一个红色背景的圆圈及其中的白色 X 组成
Information 消息框包含一个符号,由一个圆圈及其中的小写字母 i组成
None 消息框未包含符号
Question 消息框包含一个符号,由一个圆圈和其中的一个问号组成
Stop 消息框包含一个符号,由一个红色背景的圆圈及其中的白色 X 组成
Warning 消息框包含一个符号,由一个黄色背景的三角形及其中的一个感叹号组成
应用软件开发( C# ) 第 6 章 窗体应用程序设计
消息框举例消息框举例
例如:
if (MessageBox.Show("你要去参观上海世博会吗? ", " 上海世博会 ", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.Yes)
{
}
应用软件开发( C# ) 第 6 章 窗体应用程序设计
本讲小结
常用对话框
消息对话框