Visual C# 对话框全接触

鑫达乐购

鑫达乐购

2016-02-19 16:59

想要天天向上,就要懂得享受学习。图老师为大家推荐Visual C# 对话框全接触,精彩的内容需要你们用心的阅读。还在等什么快点来看看吧!

  VS.net bate 2出来也很久了,感觉还可以。早一阵子,朋友让我帮他写两个打印程序,当中用了不少的对话,在查资料的时候看到国外有一篇专门的文章介绍对话框的,就决定写这篇文章,让大家都有个好的起点。同时还着重介绍了打印那一部份,大家可以仔细研究一下,都说了很多了。现在我们开发吧!

  对话框中我们常用了以下几种:

  1、文件对话框(FileDialog) 它又常用到两个:

  打开文件对话框(OpenFileDialog)

  保存文件对话(SaveFileDialog)

  2、字体对话框(FontDialog)

  3、颜色对话框(ColorDialog)

  4、打印预浏对话框(PrintPreviewDialog)

  5、页面设置(PrintDialog)

  6、打印对话框(PrintDialog)

  还有更多,有时间的网友可以看看MSDN。下面我们一个个来介绍。在介绍的过程中我用到了一个自己开发的类:File,主要是文件操作的。

  文件对话框(FileDialog)

  一、打开文件对话框(OpenFileDialog)

  1、 OpenFileDialog控件有以下基本属性

  InitialDirectory对话框的初始目录Filter要在对话框中显示的文件筛选器,例如,"文本文件(*.txt)|*.txt|所有文件(*.*)||*.*"FilterIndex在对话框中选择的文件筛选器的索引,如果选第一项就设为1RestoreDirectory控制对话框在关闭之前是否恢复当前目录FileName 第一个在对话框中显示的文件或最后一个选取的文件Title 将显示在对话框标题栏中的字符AddExtension是否自动添加默认扩展名CheckPathExists

  在对话框返回之前,检查指定路径是否存在DefaultExt默认扩展名 DereferenceLinks在从对话框返回前是否取消引用快捷方式ShowHelp

  启用"帮助"按钮ValiDateNames 控制对话框检查文件名中是否不含有无效的字符或序列

  2、 OpenFileDialog控件有以下常用事件

  FileOk当用户点击"打开"或"保存"按钮时要处理的事件HelpRequest当用户点击"帮助"按钮时要处理的事件

  3、OpenFileDialog的效果如下:

  可以用以下代码来实现上面这个对话框:

  

private void openFileDialogBTN_Click(object sender, System.EventArgs e){OpenFileDialog openFileDialog=new OpenFileDialog();openFileDialog.InitialDirectory="c:\";//注意这里写路径时要用c:\而不是c:openFileDialog.Filter="文本文件|*.*|C#文件|*.cs|所有文件|*.*";openFileDialog.RestoreDirectory=true;openFileDialog.FilterIndex=1;if (openFileDialog.ShowDialog()==DialogResult.OK){fName=openFileDialog.FileName;File fileOpen=new File(fName);isFileHaveName=true;richTextBox1.Text=fileOpen.ReadFile();richTextBox1.AppendText("");}}

  其中有用到了File()这个类,是我在程序用来执行文件操作,自己写的,在最后附了这个类的源码。有兴趣的网友可以自己分析。

  二、保存文件对话框(SaveFileDialog)

  保存文件对话框控件有两种情况,一就是保存,二就是另存为,保存很简单,就是在文件已经打开的情况下的,再把文件写一篇,在这里我们主要讲另存为的情况(SaveAs)。

  1,SaveFileDialog控件的属性

  Filter要在对话框中显示的文件筛选器,例如,"文本文件(*.txt)|*.txt|所有文件(*.*)|*.*"FilterIndex在对话框中选择的文件筛选器的索引,如果选第一项就设为1RestoreDirectory控制对话框在关闭之前是否恢复当前目录AddExtension是否自动添加默认扩展名CheckFileExists  CheckPathExists

  在对话框返回之前,检查指定路径是否存在Container控制在将要创建文件时,是否提示用户。只有在ValidateNames为真值时,才适用。DefaultExt缺省扩展名DereferenceLinks

  在从对话框返回前是否取消引用快捷方式FileName第一个在对话框中显示的文件或最后一个选取的文件InitialDirector对话框的初始目录OverwritePrompt 控制在将要在改写现在文件时是否提示用户,只有在ValidateNames为真值时,才适用ShowHelp启用"帮助"按钮Title将显示在对话框标题栏中的字符ValidateNames控制对话框检查文件名中是否不含有无效的字符或序列

  2、SaveFileDialog事件如下:

  FileOk 当用户点击"打开"或"保存"按钮时要处理的事件HelpRequest当用户点击"帮助"按钮时要处理的事件

  3、SaveFileDialog的效果如下:

  4、用下例代码可以实现

  

private void saveAsDialogBTN_Click(object sender, System.EventArgs e){SaveFileDialog saveFileDialog=new SaveFileDialog();saveFileDialog.Filter="文本文件|*.*|C#文件|*.cs|所有文件|*.*";saveFileDialog.FilterIndex=2;saveFileDialog.RestoreDirectory=true;if(saveFileDialog.ShowDialog()==DialogResult.OK){if(saveFileDialog.ShowDialog()==DialogResult.OK){fName=saveFileDialog.FileName;File fSaveAs=new File(fName);isFileHaveName=true; file://保存的文件有名字fSaveAs.WriteFile(richTextBox1.Text);}}}

  其实这些都可以在VS.NET的IDE环境中直接完成,为了说明问题,我还是一条条列也来了。当中用到了一个File的类库,下面是源程序:

  File.cs

using System;using System.IO;using System.Windows.Forms;using System.Text;namespace dialog{////// Summary description for File.///public class File{string fileName;public File(string fileName){this.fileName=fileName;}public string ReadFile(){try{StreamReader sr=new StreamReader(fileName,Encoding.Default);string result=sr.ReadToEnd();sr.Close();return result;}catch(Exception e){MessageBox.Show(e.Message);}return null;}public void WriteFile(string str){try{StreamWriter sw=new StreamWriter(fileName,false,Encoding.Default);sw.Write(str);sw.Close();}catch(Exception e){MessageBox.Show(e.Message,"保存文件出错!");}}}}

  字体对话框(FontDialog)

  在文字处理中,我们常用到字体,现在我们来做一个最常见的字体对话框。

  一、 字体对话框(FontDialog)常用属性

  ShowColor控制是否显示颜色选项AllowScriptChange是否显示字体的字符集Font在对话框显示的字体AllowVerticalFonts是否可选择垂直字体Color在对话框中选择的颜色FontMustExist 当字体不存在时是否显示错误MaxSize 可选择的最大字号MinSize可选择的最小字号ScriptsOnly显示排除OEM和Symbol字体ShowApply是否显示"应用"按钮ShowEffects 是否显示下划线、删除线、字体颜色选项ShowHelp 是否显示"帮助"按钮

  二、 字体对话框(FontDialog)的事件

  Apply 当点击"应用"按钮时要处理的事件HelpRequest当点击"帮助"按钮时要处理的事件

  三、 字体对话框(FontDialog)的效果

  四、 实现代码

  

private void fontDialogBTN_Click(object sender, System.EventArgs e){FontDialog fontDialog=new FontDialog();fontDialog.Color=richTextBox1.ForeColor;fontDialog.AllowScriptChange=true;fontDialog.ShowColor=true;if(fontDialog.ShowDialog()!=DialogResult.Cancel){richTextBox1.SelectionFont=fontDialog.Font;//将当前选定的文字改变字体}}

  上面代码将选定的文本设置为当前FontDialog对话框中的字体。

  颜色对话框(ColorDialog)

  颜色拾取框也是我们常见的对话框之一,下面我们来看看在C#中是如何操作颜色对话框的呢?

  一、 颜色对话框(ColorDialog)的常见属性

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

  AllowFullOpen 禁止和启用"自定义颜色"按钮FullOpen是否最先显示对话框的"自定义颜色"部份ShowHelp是否显示"帮助"按钮Color在对话框中显示的颜色AnyColor显示可选择任何颜色CustomColors 是否显示自定义颜色SolidColorOnly是否只能选择纯色

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

  二、 颜色对话框(ColorDialog)的效果如下:

  三、 实现代码见下:

  

private void colorDialogBTN_Click(object sender, System.EventArgs e){ColorDialog colorDialog=new ColorDialog();colorDialog.AllowFullOpen=true;colorDialog.FullOpen=true;colorDialog.ShowHelp=true;colorDialog.Color=Color.Black;//初始化当前文本框中的字体颜色,当用户在ColorDialog对话框中点击"取消"按钮file://恢复原来的值colorDialog.ShowDialog();richTextBox1.SelectionColor=colorDialog.Color;}

  实现颜色对话框(ColorDialog)很容易吧,其实不只是颜色对话框,C#也是很容易的,只要用心去学,都容易的。讲完了颜色对话框(ColorDialog),我们来讲打印和页面设置.

  页面设置(PageSetupDialog)

  其实页面设置(PageSetupDialog)没有太多的讲,既然讲到这里,我还是把PageSetupDialog中常用的属性列出来吧

  一、页面设置(PageSetupDialog)常见属性

  AllowMargins设置是否可以对边距的编辑AllowOrientation是否可以使用"方向"单选框AllowPaper 设置是否可以对纸张大小的编辑AllowPrinter设置是否可以使用"打印机"按钮Document获取打印机设置的PrintDocumentMinMargins允许用户选择的最小边距

  二、面设置(PageSetupDialog)的效果如下

  就这么简单啦,我们看看下面的吧,还有更重磅的东东呢?关于打印的。

  打印预浏及打印

  打印是我们在windows编程中常要用到的功能,在以前都是很麻烦工作,但在Microsoft .net Framework中打印是以组件提供给我们使用,不过还是点麻烦的,所以就专门写出来,供大家参改。

  一, 在.net环境中,说到打印,就不能不说PrintDocumet这个类,PrintDocument属于System.Drawing.Printing这个名字空间,PrintDocument这个类是实现打印的核心代码。

  如果要实现打印,就必需首先构造PrintDocument对象添加打印事件,

  printDocument.PrintPage+=new PrintPageEventHandler(this.printDocument_PrintPage)

  打印其实也是调用Graphics类的方法进行画图,下面这代码是根据MSDN上提供的例程改写的。MSDN打印例程地址:

  http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemDrawingPrintingPrintDocumentClassTopic.asp ,有兴趣的网友可以参改一下。

  下面是我改写的printDocument_PrintPage:

  

private void printDocument_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e){float linesPerPage=0;//页面的行号float yPos=0;//打印字符串的纵向位置int count=0;//行计数器float leftMargin =e.MarginBounds.Left;//左边距float topMargin=e.MarginBounds.Top;//上边距string line=null;//行字符串Color clr=richTextBox1.SelectionColor;//当前的打印颜色,在我这个程序没有实现不同颜色打印SolidBrush b =new SolidBrush(clr);//刷子fnt=richTextBox1.SelectionFont;//当前的打印字体linesPerPage=e.MarginBounds.Height/fnt.GetHeight(e.Graphics);//每页可打印的行数file://逐行循行打印一页while(count {yPos=topMargin+(count*fnt.GetHeight(e.Graphics));e.Graphics.DrawString(line,fnt,b,leftMargin,yPos,new StringFormat());count++;}file://如果该页打印完成而line不为空说明还有没完成的页面,发出下一次的打印事件,file://在下一次的打印中lineReader会自动读取上次没有打印完的内容。lineReader可以记录当前读取的位置if(line!=null)e.HasMorePages=true;elsee.HasMorePages=false;}

展开更多 50%)
分享

猜你喜欢

Visual C# 对话框全接触

编程语言 网络编程
Visual C# 对话框全接触

选择文件夹的对话框控件c#

电脑网络
选择文件夹的对话框控件c#

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Visual Basic 工具栏、对话框

编程语言 网络编程
Visual Basic 工具栏、对话框

C#深入浅出全接触(五)

编程语言 网络编程
C#深入浅出全接触(五)

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

C#深入浅出全接触(一)

编程语言 网络编程
C#深入浅出全接触(一)

C#深入浅出全接触(二)

编程语言 网络编程
C#深入浅出全接触(二)

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

ajax中文乱码解决方案

ajax中文乱码解决方案

HTML网页制作的八条强大技巧

HTML网页制作的八条强大技巧
下拉加载更多内容 ↓