欢迎光临
我们一直在努力

Visual C# 对话框全接触-.NET教程,Windows开发

建站超值云服务器,限时71元/月

   2002-03-25· ·蚕蛹 ··yesky

    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 在对话框中选择的文件筛选器的索引,如果选第一项就设为1
restoredirectory 控制对话框在关闭之前是否恢复当前目录
filename 第一个在对话框中显示的文件或最后一个选取的文件
title 将显示在对话框标题栏中的字符
addextension 是否自动添加默认扩展名
checkpathexists 在对话框返回之前,检查指定路径是否存在
defaultext 默认扩展名
dereferencelinks 在从对话框返回前是否取消引用快捷方式
showhelp 启用"帮助"按钮
validatenames 控制对话框检查文件名中是否不含有无效的字符或序列

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

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

  3、openfiledialog的效果如下:

Visual C# 对话框全接触-.NET教程,Windows开发

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

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 在对话框中选择的文件筛选器的索引,如果选第一项就设为1
restoredirectory 控制对话框在关闭之前是否恢复当前目录
addextension 是否自动添加默认扩展名
checkfileexists
checkpathexists 在对话框返回之前,检查指定路径是否存在
container 控制在将要创建文件时,是否提示用户。只有在validatenames为真值时,才适用。
defaultext 缺省扩展名
dereferencelinks 在从对话框返回前是否取消引用快捷方式
filename 第一个在对话框中显示的文件或最后一个选取的文件
initialdirector 对话框的初始目录
overwriteprompt 控制在将要在改写现在文件时是否提示用户,只有在validatenames为真值时,才适用
showhelp 启用"帮助"按钮
title 将显示在对话框标题栏中的字符
validatenames 控制对话框检查文件名中是否不含有无效的字符或序列

  2、savefiledialog事件如下:

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

  3、savefiledialog的效果如下:

Visual C# 对话框全接触-.NET教程,Windows开发

  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,"保存文件出错!");}
}
}
}
赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » Visual C# 对话框全接触-.NET教程,Windows开发
分享到: 更多 (0)

相关推荐

  • 暂无文章