- 2
- 0
- 约3.59千字
- 约 3页
- 2017-06-08 发布于重庆
- 举报
通过实例学VB(三)
站长专用!!
通过实例学VB(三)
在上面一章中向大家介绍了建立程序的菜单以及实现实现文本编辑器的两个基本的功能:打开文件和新建文件,在这一章内,将实现文件菜单中的其它项,包括保存、另存为、打印。
首先要来考虑的是保存和另存的问题,在上一章内我们已经为每一个编辑窗体添加了一个OpenFile属性来保存编辑窗口所打开文件的文件名,对于保存,如果OpenFile属性为空,则要打开保存对话框让用户输入保存文件名,然后使用该文件名作为编辑窗体的OpenFile属性并执行保存操作。对于另存为,无论编辑窗体的OpenFile属性是否为空,都要打开保存对话框让用户输入保存文件名,然后使用该文件名作为编辑窗体的OpenFile属性并执行保存操作。基于这种思路,我们需要在Form1中添加两个子过程分别实现编辑窗体的保存和保存为功能。
首先打开Form1的代码窗口,然后在 通用 区域添加如下代码:
Sub SaveFile If Me.OpenFile Then Me.RichTextBox1.SaveFile Me.OpenFile, rtfText Else With MDIForm1.CommonDialog1 .Filter 所有文件 *.* |*.* 设置标志为当文件已经存在时提示是否覆盖 .Flags cdlOFNOverwritePrompt .ShowSave If .FileName Then 用户输入了正确的文件名并按确定键 Me.RichTextBox1.SaveFile .FileName, rtfText Me.OpenFile .FileName Me.Caption .FileName End If End With End If
End Sub
Sub SaveFileAs With MDIForm1.CommonDialog1 .FileName Me.OpenFile .Flags cdlOFNOverwritePrompt .Filter 所有文件 *.* |*.* .ShowSave If .FileName Then Me.RichTextBox1.SaveFile .FileName, rtfText Me.OpenFile .FileName Me.Caption .FileName End If End With
End Sub
然后再打开MDIForm1的代码窗口,在菜单项mFileSave的Click事件中加入以下代码: Me.ActiveForm.SaveFile
在菜单项mFileSaveAs的Click事件中添加如下代码: Me.ActiveForm.SaveFileAs
运行程序,尝试打开或者新建两个编辑窗口,然后再点击菜单中的保存或者另存项,看一下程序的运行效果。效果如图: 附加图片3-0.bmp
通过分析上面的两个子过程可以看到Form1中的保存和另存子过程都使用了MDIForm1中的通用对话框控件的ShowSave方法显示保存文件对话框。在使用ShowSave方法之前,首先要设置控件的Flags属性为cdlOFNOverwritePrompt,做这个设置是为了使在保存时如果文件已经存在发出提示。通用对话框控件的Flags属性的作用是设置对话框的一些属性,这个属性的选项很多,大家可以参考VB的帮助。
接下来需要实现的是文档的打印问题,在本程序中我们将通过通用对话框控件首先显示打印对话框让用户选择打印的份数,打印的页码数。然后当用户选择打印时再将RTF控件中的文本输出到打印机。
下面首先来看程序,打开MDIForm1窗体,点击窗体菜单中的 文件 | 打印 项,然后在代码窗口的mFilePrint的Click事件中添加如下代码:
On Error GoTo lPrintErr With CommonDialog1 .CancelError True .Flags cdlPDReturnDC + cdlPDNoPageNums If Me.ActiveForm.RichTextBox1.SelLength 0 Then .Flags .Flags + cdlPDAllPages Else .Flags .Flags + cdlPDSelection End If .ShowPrinter End With 将活动编辑窗口的内容发送到打印机 Me.ActiveForm.RichTextBox1.SelPrint CommonDialog1.hDC Exit Sub
如果用户在打印对话框中选择了Cancel就会引发错误,而
错误在这里处理
lPrintErr: If Err.Number 3
原创力文档

文档评论(0)