在Visual Basic应用程序中,RichTextBox是一个非常强大的控件,它提供了许多文本格式化的选项。然而,所有的选项都需要通过后台编码来使用。曾在不同的应用程序中使用过RichTextBox,因此编写了这个小的扩展控件,它在顶部显示一个工具栏,用户可以通过它执行一些常见的操作。添加的一个很酷的选项是拼写检查功能(这得益于CodeProject上的另一篇文章,NetSpell - Spell Checker for .NET)。所以,不需要在表单中放置RichTextBox,而是放置ExtendedRichTextBox。
在互联网上看到过许多使用RichTextBox创建类似WordPad应用程序的完整VB应用程序的帖子。它们对于代码参考非常有用,但不能简单地将其作为一个控件拖放并开始使用。这就是为什么不得不编写这个控件的原因。
基本上,如果只需要在表单上使用这个控件,可以简单地将DLL添加为引用,然后就可以完成了。下载演示项目以查看如何设置。确保将en-US.dic文件包含在项目中。仍然可以像使用RichTextBox一样使用这个控件。唯一的区别是它显示了一个带有选项的精美工具箱。
实际的控件项目也包括在内,所以可以根据需要轻松添加其他选项和按钮,或者可能需要移除一个。所需要做的就是处理按钮点击。例如,这是如何处理切换项目符号的:
VB.NET
Private Sub BulletsToolStripButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BulletsToolStripButton.Click
rtb.SelectionBullet = Not rtb.SelectionBullet
BulletsToolStripButton.Checked = rtb.SelectionBullet
End Sub
第一行执行功能,第二行切换按钮的功能。大多数功能的实现就是这么简单。
请注意,如果选择了具有格式的文本,它实际上会切换复选框。这是通过在RichTextBox的SelectionChanged事件中设置按钮的选中值来处理的,方法是比较RichTextBox中该位置的设置是什么。
可能会发布一个更新,提供隐藏/显示每个按钮的选项,以便控件用户可以更好地控制它。此外,还有许多功能可以添加,比如字体和字体大小选择的ComboBox,插入图片/对象,保存/打开RTF文件等。