C# 学习笔记六 对话框、菜单、工具栏、状态栏

一、对话框

Windows提供的标准对话框:打开文件、另存为、浏览文件夹、颜色对话框、字体对话框

C#提供了两种特殊对话框:消息对话框、关于对话框


1. 打开对话框 OpenFileDialog

(1)Filter属性: Excel 文件 |*.xls ”,前面的“ Excel 文件”成为标签,是一个可读的字符串,可以自定义,“ |*.xls ”是筛选器,表示筛选文件夹中后缀名为 .xls 的文件 , * ”表示匹配 Excel 文件名称的字符串。

  • Filter是null或Empty,表示显示所有文件,并总会显示文件夹
  • 需要筛选特定的文件,设置Filter属性为“标签|*.后缀”,按照这个格式设置,标签可以自定义,是字符串即可,后缀表示你需要筛选的文件后缀,例如“.txt、.doc”等
  • 需要筛选多种文件,比方说需要筛选图片文件,但是图片文件的后缀有几种,例如jpg、png、gif等,当需要同时筛选这些文件,设置Filter属性为:标签|*.jpg;*.png;*.gif”,注意:只是在筛选器中多添加了几个后缀,不同后缀之间使用分号隔开
  • 当需要筛选多种文件,但是不同时将它们全部列出来,只有用户分别通过下拉列表选择需要的文件类型时,才进行筛选。这种情况下只需要多设置几个筛选器即可,filter属性设置如下:“标签1|*.jpg|标签2|.png|标签3|.gif”。注意:不同的筛选器之间使用“|”分隔即可。

(2)Multiselect:多选

(3)FileNames属性:用来获取对话框中所有选定文件的文件名。每个文件名都既包含文件路径又包含文件扩展名。如果未选定文件,该方法将返回空数组。
(4)RestoreDirectory属性:用来获取或设置一个值,该值指示对话框在关闭前是否还原当前目录。假设用户在搜索文件的过程中更改了目录,且该属性值为 true,那么,对话框会将当前目录还原为初始值,若该属性值为 false,则不还原成初始值。默认值为 false。


运行:通用对话框对象名.ShowDialog();
返回值:如果单击对话框中的【确定】按钮,则返回值为 DialogResult.OK;否则返回值为DialogResult.Cancel。

private void button1_Click(object sender, EventArgs e) { openFileDialog1.Title = "打开文件.."; //窗口标题,默认为“打开” openFileDialog1.Filter = "文档(*.doc;*.xls)|*.doc;*.xls|图片(*.png;*.pic;*.jpg)|*.png;*.pic;*.jpg"; openFileDialog1.FilterIndex = 1; //当前选定的过滤器索引 openFileDialog1.InitialDirectory = Application.ExecutablePath; //初始目录 openFileDialog1.Multiselect = true; //是否多选 if (openFileDialog1.ShowDialog() == DialogResult.OK) //是否选择了文件 { for (int i = 0; i < openFileDialog1.FileNames.Length; i++) { richTextBox1.Text += openFileDialog1.FileNames[i] + "/n"; } } }

 

2.另存为对话框 SaveFileDialog

示例:一个按钮打开一个文本文件,把内容显示在RichTextBox控件中;另一个按钮将RichTextBox内容写入文本文件中。

using System.IO;

private void button2_Click(object sender, EventArgs e) { openFileDialog2.Filter = "文本文件(*.txt)|*.txt"; if (openFileDialog2.ShowDialog() == DialogResult.OK) { StreamReader sreader = new StreamReader(openFileDialog2.FileName,Encoding.Default); richTextBox2.Text = sreader.ReadToEnd(); sreader.Close(); } } private void button3_Click(object sender, EventArgs e) { saveFileDialog2.Filter = "文本文件(*.txt)|*.txt"; if (saveFileDialog2.ShowDialog() == DialogResult.OK) { StreamWriter swriter = new StreamWriter(saveFileDialog2.FileName,true); swriter.Write(richTextBox2.Text); swriter.Close(); } }

 

3.浏览文件夹

选择的路径:对象.SelectedPath

初始路径:对象.RootFolder

private void button4_Click(object sender, EventArgs e) { folderBrowserDialog1.RootFolder = Environment.SpecialFolder.Desktop; if (folderBrowserDialog1.ShowDialog() == DialogResult.OK) { textBox1.Text = folderBrowserDialog1.SelectedPath; } }

 

4.颜色对话框

.AllowFullOpen: 允许自定义颜色

.AnyColor: 显示所有颜色

.SolidColorOnly: 可选择复杂颜色

示例:

private void button5_Click(object sender, EventArgs e) { colorDialog1.AllowFullOpen = true; //允许自定义颜色 colorDialog1.AnyColor = true; //显示所有颜色 colorDialog1.SolidColorOnly = false; //可选择复杂颜色 if (colorDialog1.ShowDialog() == DialogResult.OK) { if (richTextBox3.SelectedText== "") { //是否选择了文本 richTextBox3.SelectAll(); richTextBox3.SelectionColor = colorDialog1.Color; } } }

 

5.字体对话框


二、菜单 MenuStrip

MenuStrip 控件来设计菜单栏,该控件支持多文档界面、菜单合并、工具提示和溢出等功能。

开发人员可通过添加访问键、快捷键、选中标记、图像和分割条来增加菜单可用性和可读性。

控件上右键进行插入分隔符、设置图标

 

三、工具栏控件 ToolStrip

 

四、状态栏控件 StatusStrip

通常StatusStrip控件由ToolStripStatusLabel对象组成,每个对象都可以显示文本、图像或同时显示。

此外,还可以包含ToolStripDropButton、ToolStripSplitButton、ToolStripProgressBar

private void MenuForm_Load(object sender, EventArgs e) { this.toolStripStatusLabel1.Text = "当前系统日期:"+DateTime.Now.ToShortDateString(); }


五、自定义事件消息处理,菜单中的打开文件历史记录

 

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; namespace Dialogs { public partial class MenuForm : Form { public MenuForm() { InitializeComponent(); } private void MenuForm_Load(object sender, EventArgs e) { 文件ToolStripMenuItem.DropDownItems.Clear(); //清空文件下的菜单项 this.toolStripStatusLabel1.Text = "当前系统日期:"+DateTime.Now.ToShortDateString(); ToolStripMenuItem menuitem1 = new ToolStripMenuItem("打开"); //实例化打开菜单 文件ToolStripMenuItem.DropDownItems.Insert(0,menuitem1); //插入到“文件”主菜单下拉表的第一个菜单位置 menuitem1.Click += new EventHandler(打开ToolStripMenuItem_Click); //指定单击事件 ToolStripMenuItem menuitem2 = new ToolStripMenuItem("退出"); //实例化退出菜单 文件ToolStripMenuItem.DropDownItems.Insert(1,menuitem2); //插入到文件主菜单第二项 StreamReader sr = new StreamReader("d://Menu.ini"); //读取流对象 int i = this.文件ToolStripMenuItem.DropDownItems.Count - 1; //菜单中放历史文件的位置 while (sr.Peek() >= 0) { ToolStripMenuItem menuitem = new ToolStripMenuItem(sr.ReadLine()); //读一行作为菜单项 this.文件ToolStripMenuItem.DropDownItems.Insert(i, menuitem); //添加历史菜单 i++; menuitem.Click += new EventHandler(menuitem_Click); //指定单击事件 } sr.Close(); //关闭流 } private void 打开ToolStripMenuItem_Click(object sender, EventArgs e) { openFileDialog1.Filter = "所有文件(*.*)|*.*"; if(openFileDialog1.ShowDialog()==DialogResult.OK){ StreamWriter s = new StreamWriter("d://Menu.ini",true); //历史文件 s.WriteLine(openFileDialog1.FileName); //写入文件名 s.Flush(); s.Close(); System.Diagnostics.Process.Start(openFileDialog1.FileName); //打开指定的文件 } MenuForm_Load(sender,e); //重新加载菜单 } private void menuitem_Click(object sender, EventArgs e) { try { ToolStripMenuItem menu = (ToolStripMenuItem)sender; //类型转换,获取单击项 System.Diagnostics.Process.Start(menu.Text); //打开指定文件 } catch { } } } }

 

C# 学习笔记六 对话框、菜单、工具栏、状态栏_第1张图片

你可能感兴趣的:(C# 学习笔记六 对话框、菜单、工具栏、状态栏)