• C# 对话框总结(转载)


    转载自:http://www.cnblogs.com/302soft/archive/2007/01/20/625863.html

    在编程中经常使用到的对话框大致有六个,他们分别是:"选择文件对话框"、"保存文件对话框"、"颜色对话框"、"打印预览对话框"、"打印机选择对话框"和"字体选择对话框"。那么在C#是否也有相应的对话框?答案是存在的。那么在C#中如何使用?本文就来探讨一下这个问题。

    一. 本文介绍的程序设计和运行的软件环境:

    (1).微软公司视窗2000服务器版

    (2)..Net FrameWork SDK Beta 2

    二. 选择文件对话框:

    在命名空间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" ;
      }
      }

    九.总结:

    对话框是编程过程中经常使用到的组件,希望上面的介绍对您在程序设计中使用这些对话框有所帮助。

  • 相关阅读:
    【操作系统】第九章 虚拟内存
    【计网】第七章
    信息安全数学基础整理笔记
    深入浅出数据分析 笔记总结
    ERROR: Error cloning remote repo 'origin'
    Docker 操作
    centos 安装 git
    CentOS 7 安装 JAVA环境(JDK 1.8)
    如何删除 容器里的软件(彻底)
    Docker 部署 Jenkins :通过SSH配置Linux宿主机为slave节点,运行外部环境
  • 原文地址:https://www.cnblogs.com/sql4me/p/1504917.html
Copyright © 2020-2023  润新知