C# 对话框使用大全
对话框中我们常用了以下几种:
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 | 在对话框中选择的文件筛选器的索引,如果选第一项就设为1 |
| RestoreDirectory | 控制对话框在关闭之前是否恢复当前目录 |
| FileName | 第一个在对话框中显示的文件或最后一个选取的文件 |
| Title | 将显示在对话框标题栏中的字符 |
| AddExtension | 是否自动添加默认扩展名 |
| CheckPathExists | 在对话框返回之前,检查指定路径是否存在 |
| DefaultExt | 默认扩展名 |
| DereferenceLinks | 在从对话框返回前是否取消引用快捷方式 |
| ShowHelp | 启用"帮助"按钮 |
| ValiDateNames | 控制对话框检查文件名中是否不含有无效的字符或序列 |
2、 OpenFileDialog控件有以下常用事件
| FileOk | 当用户点击"打开"或"保存"按钮时要处理的事件 |
| HelpRequest | 当用户点击"帮助"按钮时要处理的事件 |
3、OpenFileDialog的效果如下:

可以用以下代码来实现上面这个对话框:
openFileDialog.InitialDirectory="c://";//注意这里写路径时要用c://而不是c:/
openFileDialog.Filter="文本文件|*.*|C#文件|*.cs|所有文件|*.*";
openFileDialog.RestoreDirectory=true;
openFileDialog.FilterIndex=1;
if (openFileDialog.ShowDialog()==DialogResult.OK)
File fileOpen=new File(fName);
isFileHaveName=true;
richTextBox1.Text=fileOpen.ReadFile();
richTextBox1.AppendText("");
}
} 其中有用到了File()这个类,是我在程序用来执行文件操作,自己写的,在最后附了这个类的源码。有兴趣的网友可以自己分析。
二、保存文件对话框(SaveFileDialog)
保存文件对话框控件有两种情况,一就是保存,二就是另存为,保存很简单,就是在文件已经打开的情况下的,再把文件写一篇,在这里我们主要讲另存为 的情况(SaveAs)。
1,SaveFileDialog控件的属性
| Filter | 要在对话框中显示的文件筛选器,例如,"文本文件(*.txt)|*.txt|所有文件(*.*)|*.*" |
| FilterIndex | 在对话框中选择的文件筛选器的索引,如果选第一项就设为1 |
| RestoreDirectory | 控制对话框在关闭之前是否恢复当前目录 |
| AddExtension | 是否自动添加默认扩展名 |
| CheckFileExists | |
| CheckPathExists | 在对话框返回之前,检查指定路径是否存在 |
| Container | 控制在将要创建文件时,是否提示用户。只有在ValidateNames为真值时,才适用。 |
| DefaultExt | 缺省扩展名 |
| DereferenceLinks | 在从对话框返回前是否取消引用快捷方式 |
| FileName | 第一个在对话框中显示的文件或最后一个选取的文件 |
| InitialDirector | 对话框的初始目录 |
| OverwritePrompt | 控制在将要在改写现在文件时是否提示用户,只有在ValidateNames为真值时,才适用 |
| ShowHelp | 启用"帮助"按钮 |
| Title | 将显示在对话框标题栏中的字符 |
| ValidateNames | 控制对话框检查文件名中是否不含有无效的字符或序列 |
2、SaveFileDialog事件如下:
| FileOk | 当用户点击"打开"或"保存"按钮时要处理的事件 |
| HelpRequest | 当用户点击"帮助"按钮时要处理的事件 |
3、SaveFileDialog的效果如下:

4、用下例代码可以实现

new SaveFileDialog();
saveFileDialog.Filter="文本文件|*.*|C#文件|*.cs|所有文件|*.*";
saveFileDialog.FilterIndex=2;
saveFileDialog.RestoreDirectory=true;
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.Windows.Forms;
using System.Text;
namespace dialog
/**////
/// Summary description for File.
///
public class File
public File(string fileName)
}
public string ReadFile()

{
StreamReader sr=new StreamReader(fileName,Encoding.Default);
string result=sr.ReadToEnd();
sr.Close();
return result;
}
catch(Exception e)return null;
}
public void WriteFile(string str)

{
StreamWriter sw=new StreamWriter(fileName,false,Encoding.Default);
sw.Write(str);
sw.Close();
}
catch(Exception e)}
}
}字体对话框(FontDialog)
在文字处理中,我们常用到字体,现在我们来做一个最常见的字体对话框。
一、 字体对话框(FontDialog)常用属性
| ShowColor | 控制是否显示颜色选项 |
| AllowScriptChange | 是否显示字体的字符集 |
| Font | 在对话框显示的字体 |
| AllowVerticalFonts | 是否可选择垂直字体 |
| Color | 在对话框中选择的颜色 |
| FontMustExist | 当字体不存在时是否显示错误 |
| MaxSize | 可选择的最大字号 |
| MinSize | 可选择的最小字号 |
| ScriptsOnly | 显示排除OEM和Symbol字体 |
| ShowApply | 是否显示"应用"按钮 |
| ShowEffects | 是否显示下划线、删除线、字体颜色选项 |
| ShowHelp | 是否显示"帮助"按钮 |
二、 字体对话框(FontDialog)的事件
| Apply | 当点击"应用"按钮时要处理的事件 |
| HelpRequest | 当点击"帮助"按钮时要处理的事件 |
三、 字体对话框(FontDialog)的效果

四、 实现代码

new FontDialog();
fontDialog.Color=richTextBox1.ForeColor;
fontDialog.AllowScriptChange=true;
fontDialog.ShowColor=true;
if(fontDialog.ShowDialog()!=DialogResult.Cancel)
//将当前选定的文字改变字体
}
}上面代码将选定的文本设置为当前FontDialog对话框中的字体。
颜色对话框(ColorDialog)
颜色拾取框也是我们常见的对话框之一,下面我们来看看在C#中是如何操作颜色对话框的呢?
一、 颜色对话框(ColorDialog)的常见属性
| AllowFullOpen | 禁止和启用"自定义颜色"按钮 |
| FullOpen | 是否最先显示对话框的"自定义颜色"部份 |
| ShowHelp | 是否显示"帮助"按钮 |
| Color | 在对话框中显示的颜色 |
| AnyColor | 显示可选择任何颜色 |
| CustomColors | 是否显示自定义颜色 |
| SolidColorOnly | 是否只能选择纯色 |
二、 颜色对话框(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)常见属性
二、面设置(PageSetupDialog)的效果如下 打印预浏及打印 打印是我们在windows编程中常要用到的功能,在以前都是很麻烦工作,但在Microsoft .net Framework中打印是以组件提供给我们使用,不过还是点麻烦的,所以就专门写出来,供大家参改。 一, 在.net环境中,说到打印,就不能不说PrintDocumet这个类,PrintDocument属于System.Drawing.Printing这个名字空间,PrintDocument这个类是 实现打印的核心代码。 如果要实现打印,就必需首先构造PrintDocument对象添加打印事件, 下面是我改写的printDocument_PrintPage: void printDocument_PrintPage(o b j e c t sender, System.Drawing.Printing.PrintPageEventArgs e)
![]() //页面的行号 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 e.Graphics.DrawString(line,fnt,b,leftMargin,yPos,new StringFormat()); count++; } file://如果该页打印完成而line不为空说明还有没完成的页面,发出下一次的打印事件, file://在下一次的打印中lineReader会自动读取上次没有打印完的内容。lineReader可以记录当前读取的位置 if(line!=null) e.HasMorePages=true; else e.HasMorePages=false; }在这里可以完成整个打印任务。把printDocument_PrintPage构造好后,就可以打印和打印预浏。 二、打印预浏对话框(PrintPreviewDialog) 打印预浏控件是用来显示一个打印文档在打印后的效果。在打印预浏对话框中包含有,打印、缩放、单页或多页、关闭等按钮。对话框如下: void printPreviewBTN_Click(o b j e c t sender, System.EventArgs e)
![]() new StringReader(richTextBox1.Text); try![]() new PrintPreviewDialog(); printPreviewDialog1.Document=printDocument; printPreviewDialog1.FormBorderStyle=FormBorderStyle.Fixed3D; printPreviewDialog1.ShowDialog(this); } catch(Exception excep)![]() ![]() return; } }很简单的,只要你把PrintDocument_PrintPage()写好了,这里就很容易了。 三、打印对话框(PrintDialog) 1、打印对话框(PrintDialog)只要有以下属性:
2、效果如下:
在我们的教程,共讲述了文件对话框(FileDialog)、字体对话框(FontDialog)、,颜色对话框(ColorDialog)、打印预浏对话框(PrintPreviewDialog)、页面 设置(PrintDialog)、打印对话框(PrintDialog),这几个对话框,其中文件对话框(FileDialog)又有:打开文件对话框(OpenFileDialog)、保存文件对话(SaveFi leDialog)这两个对话框。有了上述基础,大家可以很容易的写出一个简单的记事本。 void printDialogBTN_Click(o b j e c t sender, System.EventArgs e)
![]() new PrintDialog(); printDialog.Document=printDocument; if(printDialog.ShowDialog()!=DialogResult.Cancel)![]() ![]() { printDocument.Print(); } catch(Exception ex)![]() } } } |
C# 对话框使用大全的更多相关文章
- Android 对话框(Dialog)大全 建立你自己的对话框
Android 对话框(Dialog)大全 建立你自己的对话框 原文地址: http://www.cnblogs.com/salam/archive/2010/11/15/1877512.html A ...
- 转 Android 对话框(Dialog)大全 建立你自己的对话框
Activities提供了一种方便管理的创建.保存.回复的对话框机制,例如 onCreateDialog(int), onPrepareDialog(int, Dialog), showDialog( ...
- C# winform对话框用法大全
对话框中我们常用了以下几种:1.文件对话框(FileDialog) 它又常用到两个: 打开文件对话框(OpenFileDialog) 保存文件对话(SaveFileDialog)2.字体对话框(F ...
- Android 对话框(Dialog)大全
转自: http://www.cnblogs.com/salam/archive/2010/11/15/1877512.html Activities提供了一种方便管理的创建.保存.回复的对话框机制, ...
- VBScript - 弹出“文件选择对话框”方法大全!
本文记录,VBScript 中,各种打开 "文件选择对话框" 的方法. 实现方法-1 (mshta.exe): 首先,我们要实现的就是,弹出上面的这个"文件选择对话框&q ...
- android项目大全,总有你所需的
注:打开请贴网址.有些直接通过链接打开的不对. 1.相对布局实例 http://kukuqiu.iteye.com/blog/1018396 2.Log图文具体解释(Log.v,Log.d,Log. ...
- (转载) android项目大全,总有你所需的
目录视图 摘要视图 订阅 赠书 | 异步2周年,技术图书免费选 程序员8月书讯 项目管理+代码托管+文档协作,开发更流畅 [置顶] android项目大全,总有你所需的 标签: 源 ...
- html_
============= 博客大全: 脚本之家:http://www.jb51.net/list/list_233_104.htm 红黑联盟: http://www.2cto.com/kf/yid ...
- html_常用技巧总结
============= 博客大全: 脚本之家:http://www.jb51.net/list/list_233_104.htm 红黑联盟: http://www.2cto.com/kf/yid ...
随机推荐
- Redis的高级应用——数据安全
Redis的数据保存在内存中,速度十分快.这也就意味着,一个恶意破解redis数据库密码的用户,可以在一秒钟进行更多的尝试.如果用户密码级别较低或更换频率过长,就会造成致命的危害. 1.设置用户 Re ...
- Struts1之logic标签
logic是Struts1中的逻辑标签 <%@ taglib prefix="logic" uri="http://struts.apache.org/tags-l ...
- 【bzoj1806】[Ioi2007]Miners 矿工配餐 dp
题目描述 有n个物品,每个都是3种之一.现要将这n个物品分成两个序列,对于每个序列中的每个物品,可以得到 它及它前面相邻的两个物品(不足则取全部)中不同种类的个数 的收益.问最大的总收益. 输入 输入 ...
- 一道js的前端面试题,主要弄清楚逗号表达式的作用
群里看到的一道前端JS面试题.我以为我会,其实我错了.找了很多资料,写下来. var i,j,k; for( i = 0 , j = 0; i < 10 , j < 6; i++ , j+ ...
- FFT多项式乘法模板
有时间来补算法原理orz #include <iostream> #include <cstdio> #include <cmath> #include <c ...
- Netscaler重置密码的方法
Netscaler重置密码的方法 http://blog.51cto.com/caojin/1898401 有时候我们会碰到忘记Netscaler的密码,或接手别人的设备而不知道密码的情况.在这种情况 ...
- [AT2558]Many Moves
题目大意:有$n$个位置$1,2,\dots n$:你有两个棋子$A$和$B$,你要进行$q$次操作,第$i$次操作给定一个$x_i$,你要选择一个棋子移动到$x_i$:求两个棋子最小移动的步数之和. ...
- CodeForces 167B - Wizards and Huge Prize 期望概率dp
初步分析:把赢了的巡回赛的a值加起来就是最后的剩余空间 这个明显的是状态转移的dp啊,然而他的状态比较骚是个数组,表示剩余空间,f(i,j,b),i表示比到第几场,j表示赢了几场,b就是里面的核心状态 ...
- malloc calloc realloc
三个函数的申明分别是: void* realloc(void* ptr, unsigned newsize); void* malloc(unsigned size); void* calloc(si ...
- LowercaseRoutesMVC ASP.NET MVC routes to lowercase URLs
About this Project Tired of your MVC application generating mixed-case URLs like http://mysite.com/H ...
就这么简单啦,我们看看下面的吧,还有更重磅的东东呢?关于打印的。
打印预浏对话框没有太多的属性,最后通过ShowDialog()调用。上面的实现代码如下:
3、用如下代码来实现: