C#中对话框的使用(比较全)
选择文件对话框:
在命名空间System.Windows.Froms中封装了一个类(Class)"OpenFileDialog",在C#中的选择文件对话框就是继承这个类。下列代码是创建一个此类的对象:
OpenFileDialog openFileDialog1 = new OpenFileDialog ( ) ;
(1).选择文件对话框一些常用的属性:
选择文件对话框的常用属性如下表:
属性名称作用InitialDirectory设置在对话框中显示的初始化目录Filter设定对话框中过滤文件字符串FilterIndex设定显示的过滤字符串的索引RestoreDirectory布尔型,设定是否重新回到关闭此对话框时候的当前目录FileName设定在对话框中选择的文件名称ShowHelp设定在对话框中是否显示"帮助"按钮Title设定对话框的标题
(2).创建一个功能相对完整的选择文件对话框的对象:
//定义一个"打开文件对话框"
OpenFileDialog openFileDialog1 = new OpenFileDialog ( ) ;
//定义此对话框的初始化目录
openFileDialog1.InitialDirectory = "c:\\" ;
//定义此对话框文件过滤类型
openFileDialog1.Filter= "txt files(*.txt)|*.txt|All files (*.*)|*.*" ;
//此对话框缺省过滤类型为第二个
openFileDialog1.FilterIndex = 2 ;
openFileDialog1.RestoreDirectory = true ;
if ( openFileDialog1.ShowDialog ( ) == DialogResult.OK )
{
fName = openFileDialog1.FileName ;
showInfo ( ) ;
sr = new StreamReader ( fName ) ;
}
此代码编译后的运行的界面如下:
图01:C#创建一个选择文件对话框对象三. 选择字体对话框:
在命名空间System.Windows.Froms中封装了一个类(Class)"FontDialog",在C#中的通过继承此类得到字体对话框的。下列代码是创建一个此类的对象:
FontDialog fontDialog1 = new FontDialog ( ) ;
(1).字体对话框的一些常用的属性:
属性名称作用ShowColor是否在对话框中显示"颜色"选项AllowScriptChange是否允许使用者更改"字符集"选择Font选择后的字体
(2).创建一个功能相对完整的字体对话框的对象:
FontDialog fontDialog1 = new FontDialog ( ) ;
fontDialog1.ShowColor = true ;
fontDialog1.AllowScriptChange = false ;
if ( fontDialog1.ShowDialog ( ) != DialogResult.Cancel )
{
fnt = fontDialog1.Font ;
showInfo ( ) ;
}
编译后的运行界面如下:
图02:C#创建一个字体对话框对象四.颜色选择对话框:
在C#中创建一个颜色对话框是通过继承命名空间System.Windows.Froms中类(Class)"ColorDialog"来实现的。下列代码是创建一个此类的对象:
ColorDialog ColorDialog1 = new ColorDialog ( ) ;
(1). 颜色选择对话框一些常用的属性:
颜色选择对话框的常用属性如下表:
属性名称作用AllowFullOpen设定用户是否可以使用自定义颜色ShowHelp设定在对话框中是否显示"帮助"按钮Color颜色对话框选择的颜色
(2).创建一个功能相对完整的颜色选择对话框的对象:
ColorDialog ColorDialog1 = new ColorDialog ( ) ;
ColorDialog1.AllowFullOpen = true ;
ColorDialog1.FullOpen = true ;
//设定此颜色对话框存在"帮助"按钮,缺省是没有的
ColorDialog1.ShowHelp = true ;
// 设定此颜色对话框的初始颜色,所以如果在对话框中选择"取消",则此对话框会重新此颜色
ColorDialog1.Color = Color.DarkBlue ;
if ( ColorDialog1.ShowDialog ( ) != DialogResult.Cancel )
{
clr = ColorDialog1.Color ;
showInfo ( ) ;
}
此代码编译后的运行的界面如下:
图03:C#创建一个颜色对话框对象五.保存文件对话框:
在C#中创建一个保存文件对话框是通过继承命名空间System.Windows.Froms中类(Class)"SaveFileDialog"来实现的。下列代码是创建一个此类的对象:
SaveFileDialog saveFileDialog1 = new SaveFileDialog ( ) ;
(1). 保存文件对话框一些常用的属性:
保存文件对话框的常用属性如下表:
属性名称作用InitialDirectory设置在对话框中显示的初始化目录Filter设定对话框中过滤文件字符串FilterIndex设定显示的过滤字符串的索引RestoreDirectory布尔型,设定是否重新回到关闭此对话框时候的当前目录FileName设定在对话框中选择的文件名称ShowHelp设定在对话框中是否显示"帮助"按钮Title设定对话框的标题
(2).创建一个功能相对完整的保存文件对话框的对象:
Stream myStream ;
SaveFileDialog saveFileDialog1 = new SaveFileDialog ( ) ;
saveFileDialog1.Filter= " txt files(*.txt)|*.txt|All files(*.*)|*.*" ;
saveFileDialog1.FilterIndex = 2 ;
saveFileDialog1.RestoreDirectory = true ;
if ( saveFileDialog1.ShowDialog ( ) == DialogResult.OK )
{
if ( ( myStream = saveFileDialog1.OpenFile ( ) ) != null )
{
//设定"sr"对象的指针指向读取文件流的开始位置
sr.BaseStream.Seek ( 0 , SeekOrigin.Begin ) ;
int i ;
//判断"sr"中的指针是否指向文件流的结尾位置
while ( ( i = sr.BaseStream.ReadByte ( ) ) != -1 )
{
//不断的往文件中写入字节
myStream.WriteByte ( ( byte ) i ) ;
}
myStream.Close ( ) ;
sr.BaseStream.Seek ( 0 , SeekOrigin.Begin ) ;
}
}
此代码编译后的运行的界面如下:
图04:C#创建一个保存文件对话框对象六.设置打印机对话框:
在C#中创建一个设置打印机对话框是通过继承命名空间System.Windows.Froms中类(Class)"PrintDialog"来实现的。下列代码是创建一个此类的对象:
PrintDialog PrintDialog1 = new PrintDialog ( ) ;
(1). 设置打印机对话框一些常用的属性:
设置打印机对话框的常用属性如下表:
属性名称作用AllowSelection设定是否显示"从…到…页"这个打印选项AllowPrintToFile设定在对话框中"打印到文件"选项是否激活Document设定要打印的文档PrintToFile设定是否选中"打印到文件"选项ShowNetwork设定在对话框是否显示"网络"这个按钮ShowHelp设定在对话框中是否显示"帮助"按钮
(2).创建一个功能相对完整的设置打印机对话框的对象:
//创建一个设置打印机对话框对象
PrintDialog PrintDialog1 = new PrintDialog ( ) ;
//首先要新建一个打印文档,
pd = new PrintDocument ( ) ;
PrintDialog1.ShowNetwork=false;
PrintDialog1.PrintToFile = false ;
PrintDialog1.Document = pd ;
if ( PrintDialog1.ShowDialog ( ) != DialogResult.Cancel )
{
try
{
pd.Print ( ) ;
}
catch ( Exception ex )
{
MessageBox.Show ( ex.Message ) ;
}
}
此代码编译后的运行的界面如下:
图05:C#创建一个设置打印机对话框对象七:打印预览对话框:
在C#中创建一个打印预览对话框是通过继承命名空间System.Windows.Froms中类(Class)"PrintPreviewDialog"来实现的。下列代码是创建一个此类的对象:
PrintPreviewDialog printPreviewDialog1 = new PrintPreviewDialog ( ) ;
(1). 打印预览对话框一些常用的属性:
设置打印机对话框的常用属性如下表:
属性名称作用FormBorderStyle设定边距类型Document设定要打印的文档
(2).创建一个可以打印一个空文档的打印预览对话框:
//创建一个打印文档
pd = new PrintDocument ( ) ;
//创建一个打印预览对话框对象
PrintPreviewDialog printPreviewDialog1 = new PrintPreviewDialog ( ) ;
printPreviewDialog1.Document = this.pd ;
printPreviewDialog1.FormBorderStyle = FormBorderStyle.Fixed3D ;
printPreviewDialog1.ShowDialog ( ) ;
此代码编译后的运行的界面如下:
图06:C#创建一个打印空文档的打印预览对话框对象八.用C#例子编写一个综合六个对话框的例子(dialog.cs):
下图是dialog.cs编译后运行的界面:
图07:用C#编写的组合六个对话框程序的运行界面
dialog.cs的源代码如下:
using System ;
using System.IO ;
using System.Text ;
using System.Drawing ;
using System.Drawing.Printing ;
using System.Collections ;
using System.ComponentModel ;
using System.Windows.Forms ;
using System.Data ;
public class Form1 : Form
{
private Button btnOpenFileDialog ;
private Button btnSaveFileDialog ;
private Button btnColorDialog ;
private Button btnFontDialog ;
private Button btnPrintDialog ;
private Label lblOutputData ;
private Label lblCaption ;
private Font fnt ;
private Color clr ;
private string fName ;
private StreamReader sr ;
private PrintDocument pd ;
private Button btnPrintPreview ;
private System.ComponentModel.Container components = null ;
public Form1 ( )
{
//初始化窗体中的各个组件
InitializeComponent ( ) ;
}
//清除程序中使用过的资源
protected override void Dispose ( bool disposing )
{
if ( disposing )
{
if ( components != null )
{
components.Dispose ( ) ;
}
}
base.Dispose ( disposing ) ;
}
private void InitializeComponent ( )
{
btnColorDialog = new Button ( ) ;
btnFontDialog = new Button ( ) ;
lblCaption = new Label ( ) ;
btnOpenFileDialog = new Button ( ) ;
btnSaveFileDialog = new Button ( ) ;
btnPrintPreview = new Button ( ) ;
btnPrintDialog = new Button ( ) ;
lblOutputData = new Label ( ) ;
SuspendLayout ( ) ;
btnColorDialog.Location = new Point ( 20 , 102 ) ;
btnColorDialog.Name = "btnColorDialog" ;
btnColorDialog.Size = new Size ( 140 , 28 ) ;
btnColorDialog.TabIndex = 2 ;
btnColorDialog.Text = "颜色对话框" ;
btnColorDialog.Click += new System.EventHandler ( btnColorDialog_Click ) ;
btnFontDialog.Location = new Point ( 20 , 65 ) ;
btnFontDialog.Name = "btnFontDialog" ;
btnFontDialog.Size = new Size ( 140 , 28 ) ;
btnFontDialog.TabIndex = 1 ;
btnFontDialog.Text = "字体对话框" ;
btnFontDialog.Click += new System.EventHandler ( btnFontDialog_Click ) ;
lblCaption.Font = new System.Drawing.Font ("宋体" , 10.5F , System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ( ( System.Byte ) ( 134 ) ) ) ;
lblCaption.Location = new Point ( 184 , 8 ) ;
lblCaption.Name = "lblCaption" ;
lblCaption.Size = new Size ( 246 , 19 ) ;
lblCaption.TabIndex = 2 ;
lblCaption.Text = "选择对话框后的输出结果:" ;
btnOpenFileDialog.Location = new Point ( 20 , 28 ) ;
btnOpenFileDialog.Name = "btnOpenFileDialog" ;
btnOpenFileDialog.Size = new Size ( 140 , 28 ) ;
btnOpenFileDialog.TabIndex = 0 ;
btnOpenFileDialog.Text = "打开文件对话框" ;
btnOpenFileDialog.Click += new System.EventHandler ( btnOpenFileDialog_Click ) ;
btnSaveFileDialog.Location = new Point ( 20 , 213 ) ;
btnSaveFileDialog.Name = "btnSaveFileDialog" ;
btnSaveFileDialog.Size = new Size ( 140 , 28 ) ;
btnSaveFileDialog.TabIndex = 5 ;
btnSaveFileDialog.Text = "保存文件对话框" ;
btnSaveFileDialog.Click += new System.EventHandler ( btnSaveFileDialog_Click ) ;
btnPrintPreview.Location = new Point ( 20 , 139 ) ;
btnPrintPreview.Name = "btnPrintPreview" ;
btnPrintPreview.Size = new Size ( 140 , 28 ) ;
btnPrintPreview.TabIndex = 3 ;
btnPrintPreview.Text = "打印预览对话框" ;
btnPrintPreview.Click += new System.EventHandler ( btnPrintPreview_Click ) ;
btnPrintDialog.Location = new Point ( 20 , 176 ) ;
btnPrintDialog.Name = "btnPrintDialog" ;
btnPrintDialog.Size = new Size ( 140 , 28 ) ;
btnPrintDialog.TabIndex = 4 ;
btnPrintDialog.Text = "打印对话框" ;
btnPrintDialog.Click += new System.EventHandler ( btnPrintDialog_Click ) ;
lblOutputData.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D ;
lblOutputData.Location = new Point ( 176 , 28 ) ;
lblOutputData.Name = "lblOutputData" ;
lblOutputData.Size = new Size ( 280 , 213 ) ;
lblOutputData.TabIndex = 1 ;
this.AutoScaleBaseSize = new Size ( 6 , 14 ) ;
this.ClientSize = new Size ( 456 , 264 ) ;
this.Controls.Add ( lblCaption ) ;
this.Controls.Add ( btnPrintPreview ) ;
this.Controls.Add ( lblOutputData ) ;
this.Controls.Add ( btnSaveFileDialog ) ;
this.Controls.Add ( btnOpenFileDialog ) ;
this.Controls.Add ( btnColorDialog ) ;
this.Controls.Add ( btnFontDialog ) ;
this.Controls.Add ( btnPrintDialog ) ;
this.MaximizeBox = false ;
this.MinimizeBox = false ;
this.Name = "Form1" ;
this.Text = "全面掌握C#中的对话框组件!" ;
this.ResumeLayout ( false ) ;
}
static void Main ( )
{
Application.Run ( new Form1 ( ) ) ;
}
private void btnOpenFileDialog_Click ( object sender , System.EventArgs e )
{
//定义一个"打开文件对话框"
OpenFileDialog openFileDialog1 = new OpenFileDialog ( ) ;
//定义此对话框的初始化目录
openFileDialog1.InitialDirectory = "c:\\" ;
//定义此对话框文件过滤类型
openFileDialog1.Filter= "txt files(*.txt)|*.txt|All files (*.*)|*.*" ;
//此对话框缺省过滤类型为第二个
openFileDialog1.FilterIndex = 2 ;
openFileDialog1.RestoreDirectory = true ;
if ( openFileDialog1.ShowDialog ( ) == DialogResult.OK )
{
fName = openFileDialog1.FileName ;
showInfo ( ) ;
sr = new StreamReader ( fName ) ;
}
}
//另存文件对话框
private void btnSaveFileDialog_Click ( object sender , System.EventArgs e )
{
Stream myStream ;
SaveFileDialog saveFileDialog1 = new SaveFileDialog ( ) ;
saveFileDialog1.Filter= " txt files(*.txt)|*.txt|All files(*.*)|*.*" ;
saveFileDialog1.FilterIndex = 2 ;
saveFileDialog1.RestoreDirectory = true ;
if ( saveFileDialog1.ShowDialog ( ) == DialogResult.OK )
{
if ( ( myStream = saveFileDialog1.OpenFile ( ) ) != null )
{
//设定"sr"对象的指针指向读取文件流的开始位置
sr.BaseStream.Seek ( 0 , SeekOrigin.Begin ) ;
int i ;
//判断"sr"中的指针是否指向文件流的结尾位置
while ( ( i = sr.BaseStream.ReadByte ( ) ) != -1 )
{
//不断的往文件中写入字节
myStream.WriteByte ( ( byte ) i ) ;
}
myStream.Close ( ) ;
sr.BaseStream.Seek ( 0 , SeekOrigin.Begin ) ;
}
}
}
//颜色选择对话框
private void btnColorDialog_Click ( object sender , System.EventArgs e )
{
ColorDialog ColorDialog1 = new ColorDialog ( ) ;
ColorDialog1.AllowFullOpen = true ;
ColorDialog1.FullOpen = true ;
//设定此颜色对话框存在"帮助"按钮,缺省是没有的
ColorDialog1.ShowHelp = true ;
// 设定此颜色对话框的初始颜色,所以如果在对话框中选择"取消",则此对话框会重新此颜色
ColorDialog1.Color = Color.DarkBlue ;
if ( ColorDialog1.ShowDialog ( ) != DialogResult.Cancel )
{
clr = ColorDialog1.Color ;
showInfo ( ) ;
}
}
//打开字体对话框
private void btnFontDialog_Click ( object sender , System.EventArgs e )
{
FontDialog fontDialog1 = new FontDialog ( ) ;
fontDialog1.ShowColor = true ;
fontDialog1.AllowScriptChange = true ;
fontDialog1.ShowColor = false ;
if ( fontDialog1.ShowDialog ( ) != DialogResult.Cancel )
{
fnt = fontDialog1.Font ;
showInfo ( ) ;
}
}
//打印机对话框
private void btnPrintDialog_Click ( object sender , System.EventArgs e )
{
PrintDialog PrintDialog1 = new PrintDialog ( ) ;
pd = new PrintDocument ( ) ;
PrintDialog1.PrintToFile = false ;
PrintDialog1.Document = pd ;
if ( PrintDialog1.ShowDialog ( ) != DialogResult.Cancel )
{
try
{
pd.Print ( ) ;
}
catch ( Exception ex )
{
MessageBox.Show ( ex.Message ) ;
}
}
}
//打印预览对话框
private void btnPrintPreview_Click ( object sender , System.EventArgs e )
{
//创建一个新的文档
pd = new PrintDocument ( ) ;
//创建一个打印预览对话框
PrintPreviewDialog printPreviewDialog1 = new PrintPreviewDialog ( ) ;
printPreviewDialog1.Document = this.pd ;
printPreviewDialog1.FormBorderStyle = FormBorderStyle.Fixed3D ;
printPreviewDialog1.ShowDialog ( ) ;
}
//显示各个对话框选择后的信息
private void showInfo ( )
{
lblOutputData.Text = "选择文件: " + fName.ToString ( ) + "\n\r\n\r" ;
lblOutputData.Text = lblOutputData.Text + "选择颜色: " +
clr.ToString ( ) + "\n\r\n\r" ;
lblOutputData.Text = lblOutputData.Text + "选择字体:" + fnt +
"\n\r\n\r" ;
}