1、 窗口是窗口是Windows程序设计中的另一项重要内容,它程序设计中的另一项重要内容,它是应用程序与用户进行交互的一个重要途径,常用于实现是应用程序与用户进行交互的一个重要途径,常用于实现应用程序的输入、输出功能。在应用程序的输入、输出功能。在C#中没有提供为窗口专门中没有提供为窗口专门设计的类。设计的类。在在Visual Studio 2008中,可以通过使用中,可以通过使用Windows窗窗体设计器来构造自定义窗口,根据具体需要,可以向窗口体设计器来构造自定义窗口,根据具体需要,可以向窗口中添加诸如中添加诸如Label、Textbox和和Button之类的控件。之类的控件。.NET Fra
2、mework还包含预定义窗口,也称为通用窗口,用户还包含预定义窗口,也称为通用窗口,用户可以自行修改以适应应用程序的需要。本章将主要介绍可以自行修改以适应应用程序的需要。本章将主要介绍C#中通用窗口的相关知识。中通用窗口的相关知识。章节内容章节内容17.1 自定义窗口自定义窗口17.2 文件窗口文件窗口17.3 文件夹浏览窗口文件夹浏览窗口17.4 打印打印17.5 打印预览窗口打印预览窗口17.6 【字体字体】窗口和窗口和【颜色颜色】窗口窗口17.7 MessageBox类类17.8 小结小结17.1 自定义窗口自定义窗口自定义窗口即由用户根据应用程序的需求自行设计的自定义窗口即由用户根据应
3、用程序的需求自行设计的窗口。通常根据工作模式的不同,自定义窗口分有模窗口。通常根据工作模式的不同,自定义窗口分有模式窗口和无模式窗口两种。有模式窗口要求用户在继式窗口和无模式窗口两种。有模式窗口要求用户在继续运行程序前先响应窗口;无模式窗口不要求用户在续运行程序前先响应窗口;无模式窗口不要求用户在继续运行程序前先响应窗口,而是停留在屏幕上随时继续运行程序前先响应窗口,而是停留在屏幕上随时可用。可用。调用窗体的调用窗体的ShowDialog()方法显示有模式窗口。方法显示有模式窗口。调用窗体的调用窗体的Show()方法显示无模式窗口。方法显示无模式窗口。17.2 文件窗口文件窗口包括文件打开窗口
4、和文件保存窗口。文件窗口包括文件打开窗口和文件保存窗口。文件打开窗口由文件打开窗口由OpenFileDialog类实现,用于浏览本类实现,用于浏览本地和网络中任意计算机上的文件夹,并可选择打开一地和网络中任意计算机上的文件夹,并可选择打开一个或多个文件;个或多个文件;文件保存窗口由文件保存窗口由SaveFileDialog类实现,用于浏览文类实现,用于浏览文件系统并选择要保存文件的位置。件系统并选择要保存文件的位置。17.2 文件窗口using System.IO;private void button1_Click(object sender,EventArgs e)SaveFileDial
5、og sfdlg=new SaveFileDialog();sfdlg.Filter=所有文件所有文件*.*|*.*|文本文件文本文件*.txt|*.txt|C#文件文件|*.cs|C文件文件|*.c;sfdlg.InitialDirectory=c:user;sfdlg.Title=保存文本文件保存文本文件;sfdlg.FilterIndex=2;/如果用户单击文件保存窗口的如果用户单击文件保存窗口的【保存保存】按钮,向文件写按钮,向文件写 if(sfdlg.ShowDialog()=DialogResult.OK)FileStream fs=new FileStream(sfdlg.Fil
6、eName,FileMode.OpenOrCreate,FileAccess.Write);StreamWriter fileStream=new StreamWriter(fs);fileStream.WriteLine(textBox1.Text);fileStream.Close();17.3 文件夹浏览窗口在进行文件操作时,除了使用文件窗口获得文件路径在进行文件操作时,除了使用文件窗口获得文件路径外,还经常需要获得文件夹的路径,这就需要使用文外,还经常需要获得文件夹的路径,这就需要使用文件 夹 浏 览 窗 口。在 程 序 中,使 用件 夹 浏 览 窗 口。在 程 序 中,使 用Fold
7、erBrowserDialog类的类的ShowDialog方法显示文方法显示文件夹浏览窗口。件夹浏览窗口。17.4 打印private void Form1_Load(object sender,EventArgs e)pdoc.PrintPage+=new System.Drawing.Printing.PrintPageEventHandler(pdoc_PrintPage);pd.Document=pdoc;/设置设置Document属性为需要打印的文档属性为需要打印的文档void pdoc_PrintPage(object sender,System.Drawing.Printing.
8、PrintPageEventArgs e)e.Graphics.FillRectangle(Brushes.Red,new Rectangle(400,400,400,400);private void button1_Click(object sender,EventArgs e)/打印文档打印文档 if(pd.ShowDialog()=DialogResult.OK)pd.Document.Print();private void button2_Click(object sender,EventArgs e)Application.Exit();17.5 打印预览窗口在在C#中,可以通过
9、两种方式进行打印预览,即使用中,可以通过两种方式进行打印预览,即使用PrintPreviewControl控件和控件和PrintPreviewDialog组件。组件。PrintPreviewDialog组件又称打印预览窗口,用于组件又称打印预览窗口,用于显示文档打印后的外观,该窗口包含打印、放大、显示文档打印后的外观,该窗口包含打印、放大、显示一页或多页等命令按钮显示一页或多页等命令按钮.17.5 打印预览窗口using System.Drawing.Printing;private void Form1_Load(object sender,EventArgs e)PrintDocument
10、 myDocument=new PrintDocument();myDocument.PrintPage+=new PrintPageEventHandler(docToPrint_PrintPage);private void button1_Click(object sender,EventArgs e)printPreviewDialog1.Document=myDocument;/将打印预览的打印文档设置为打将打印预览的打印文档设置为打印文档印文档 printPreviewDialog1.ShowDialog();/显示打印预览窗口显示打印预览窗口 void myDocument _P
11、rintPage(object sender,PrintPageEventArgs e)e.Graphics.FillRectangle(Brushes.Red,new Rectangle(150,300,500,500);17.5 打印预览窗口打印预览控件(打印预览控件(PrintPreviewControl)用于按文档打)用于按文档打印时的外观显示文档。此控件没有命令按钮和其他用户印时的外观显示文档。此控件没有命令按钮和其他用户界面元素,因此通常只有在自定义打印预览用户界面时界面元素,因此通常只有在自定义打印预览用户界面时才使用它。如果需要标准的用户界面,可以使用才使用它。如果需要标准的用
12、户界面,可以使用 PrintPreviewDialog控件控件.17.5 打印预览窗口private void Form1_Load(object sender,EventArgs e)PrintDocument docToPrint=new PrintDocument();printPreviewControl1.Document=docToPrint;docToPrint.PrintPage+=new PrintPageEventHandler(docToPrint_PrintPage);void docToPrint_PrintPage(object sender,PrintPageEv
13、entArgs e)string text=这是打印预览控件的演示!这是打印预览控件的演示!;Font printFont=new Font(宋体宋体,40,FontStyle.Regular);e.Graphics.DrawString(text,printFont,Brushes.Red,100,100);e.Graphics.FillRectangle(Brushes.Red,new Rectangle(150,300,500,500);17.6.1 【字体】窗口【字体字体】窗口是标准的窗口是标准的Windows窗口,用于设置当窗口,用于设置当前所选文字的字体。默认情况下,在前所选文字的
14、字体。默认情况下,在【字体字体】窗口窗口中显示字体、字形、大小的列表框,以及删除线和中显示字体、字形、大小的列表框,以及删除线和下划线效果的复选框。下划线效果的复选框。可以通过可以通过FontDialog类的类的ShowDialog()方法显示方法显示【字体字体】窗口,通过窗口,通过FontDialog类的类的Font属性获取属性获取用户选择的字体。其中,用户选择的字体。其中,Font是一个对象,用于公是一个对象,用于公开字体、字形、字号等开字体、字形、字号等.17.6.2 【颜色】窗口【颜色颜色】窗口允许用户从调色板选择颜色,也可以窗口允许用户从调色板选择颜色,也可以将自定义的颜色添加到该调
15、色板上。将自定义的颜色添加到该调色板上。在程序中,使用在程序中,使用ColorDialog类的类的ShowDialog()方方法就可以显示法就可以显示【颜色颜色】窗口。当用户选择颜色或自窗口。当用户选择颜色或自定义颜色后,它的定义颜色后,它的Color属性就记住了该颜色值。属性就记住了该颜色值。17.7 MessageBox类 消息框用于向用户显示一些通知消息,可以显示文本、消息框用于向用户显示一些通知消息,可以显示文本、按钮和图标。按钮和图标。简单地调用简单地调用MessageBox类的静态方法类的静态方法Show()即可实即可实现消息框。使用现消息框。使用Show()方法可以通过传递参数来
16、确定方法可以通过传递参数来确定消息框的标题、消息文本、按钮以及图标。消息框的标题、消息文本、按钮以及图标。Show()方方法的语法形式如下:法的语法形式如下:Public static DialogResult Show(string text,string caption,MessageBoxButtons buttons,MessageBoxIcon icon,MessageDefaultButton defaultButton)text用于设置在消息框中显示的提示文本;用于设置在消息框中显示的提示文本;caption用于设置消息框的标题;用于设置消息框的标题;buttons用于设置消息框
17、中显示的按钮,是一个用于设置消息框中显示的按钮,是一个MessageBoxButtons枚举枚举;icon用于设置消息框上出现的图标,是一个用于设置消息框上出现的图标,是一个MessageIcon枚举;枚举;MessageBoxDefaultButton用于设置消息框上的默认按钮。用于设置消息框上的默认按钮。17.7 MessageBox类MessageBoxButtons枚举值 枚举值包含的按钮AbortRetryIgnore“中止”、“重试”、和“忽略”按钮OK“确定”按钮OKCancel“确定”和“取消”按钮RetryCancel“重试”和“取消”按钮YesNo“是”和“否”按钮YesN
18、oCancel“是”、“否”和“取消”按钮17.7 MessageBox类 MessageIcon枚举值 枚举值图像枚举值图像AsteriskQuestionErrorStopExclamationWarningHand17.8 小结本章主要介绍了通用窗口的使用方法与技巧。读者可本章主要介绍了通用窗口的使用方法与技巧。读者可结合本章自定义窗口和通用窗口的学习,全面掌握窗结合本章自定义窗口和通用窗口的学习,全面掌握窗口的使用方法,可以在口的使用方法,可以在Windows应用程序设计中灵活应用程序设计中灵活运用,从而设计出功能强大、界面美观的应用程序。运用,从而设计出功能强大、界面美观的应用程序。