所有源代码均在这里下载:
http://www.up2e.com/resource.php
用vb.net实现简单的写字板程序的设计报告(一)-----by zigz(luhi*up2e.com)
[url=mailto:luluhai@eastday.com]luluhai@eastday.com
先看看界面:
一) 运用控件
MainMenu,SaveFileDialog,OpenFileDialog,FontDialog,ImageList,PrintDocument,ColorDialog等。
二) 关键功能
1) 首先说说最关键的,就是可以多个字体样式合并适用,比如一个字它可以既是加粗,又是斜体,又是加下划线!虽然这个可以用字体对话框做到,但是能够在工具栏按钮上实现这个功能可真是花费不少心机。
2) 实现了文本查找,替换功能。并且实现了控件的拖动。
3) 实现了打印预览功能。
三) 主要设计
一般的功能如打开文件,保存文件,复制,粘贴,剪切等等就不说了,可以参考代码文件。现在主要来说说一些关键功能的设计。
1) 提示型对话框
考虑用户在退出和关闭当前文本的时候,对用户文本内容保存提示。因此如果文本内容发生了改变,就需要在用户关闭当前文件的时候(比如新建文本,打开其他文本或者退出记事本时)弹除提示对话框,提醒用户是否保存当前文件。为了实现这个功能,需要设置一个Boolean型变量用来跟踪RichTextBox中文本内容改变的情况。RichTextBox控件有一个TextChanged事件,当文本发生改变的时候,这个事件就会被fired,所以利用这个事件来监视文本的改变。用一个Boolean型变量bSave作为标记。只要在适当的位置加入对Bsave的检查就可以判断文本内容的改变情况。
图1 保存提示'声明一个全局boolean变量,用来标记richtextbox中文本变化和保存情况
Dim bSave As Boolean
Private Sub rtbox_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles rtbox.TextChanged
'文本发生了改变,则将变量bSave置为False
bSave = False
End Sub
2)关于在ComboBox中加载用户系统上的字体列表的问题
加载用户系统上的字体到写字板ComboBox的字体栏上,为了实现他,也花费了少时间,最终在VS.NET自带的Help中找到了答案。
'下面这段代码是加载当地系统中所有字体到Combobox中
Dim allfonts As FontFamily
For Each allfonts In System.Drawing.FontFamily.Families
comboxFont.Items.Add(allfonts.Name)
Next
图2 字体列表未完待续......