65.9K
CodeProject 正在变化。 阅读更多。
Home

扩展的 RichTextBox

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.87/5 (10投票s)

2008年11月9日

CPOL

2分钟阅读

viewsIcon

144660

downloadIcon

15791

带内置选项的富文本框控件

RichTextBoxExDemo

引言

我们都在 VB 应用程序中放置和使用 Rich Text Box 控件。 这是一个丰富的控件(因此得名 RichTextBox),具有许多用于格式化文本的选项。 但是,所有选项都必须通过在后台编写代码来使用。

我也在几个不同的应用程序中使用过 RTB,所以我为 RichTextBox 编写了这个小的扩展控件,它在顶部显示一个工具栏,其中包含用户可以执行的一些常用选项。 我添加的一个很棒的选项是拼写检查选项(借助 CodeProject 上的另一篇文章,NetSpell - .NET 的拼写检查器)。

因此,与其在您的表单中放置 RichTextBox,不如放置 扩展 RichTextBox。 :)

背景

我已经在 Internet 上看到过一些完整的 VB 应用程序的帖子,它们使用 RichTextBox 来创建 WordPad 类型的应用程序。 它们对于代码参考非常有帮助,但您不能简单地将其作为控件放置并开始使用它。 这就是我必须编写此控件的原因。

Using the Code

基本上,如果您只需要在您的表单上使用该控件,您可以简单地将 DLL 添加为引用,然后完成。 下载演示项目以查看其设置方式。 确保在您的项目中包含 en-US.dic 文件。 您仍然可以像使用 RichTextBox 一样使用该控件。 唯一的区别是它在顶部显示一个漂亮的小工具箱,其中包含选项。

实际的控件项目也包含在内,因此如果您需要,您可以轻松添加其他选项和按钮,或者如果需要,甚至可以删除一个。 您所要做的就是处理按钮点击。

例如,这就是我处理切换项目符号的方式

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

第一行执行该功能,第二行切换该功能的按钮。 大多数功能实现都非常简单。

关注点

请注意,如果您选择具有格式设置的文本,它实际上会切换这些框。 这是在 RichTextBoxSelectionChanged 事件中处理的,只需通过比较 RichTextBox 中该位置的设置来设置按钮的选中值即可。

可能的未来更新

我可能会发布一个更新,其中包含隐藏/显示每个按钮的选项,以便控件用户可以更好地控制它。 此外,还有大量功能要添加,例如 ComboBox 字体和字体大小选择、图片/对象插入、保存/打开 RTF 文件等。

历史

  • 2008 年 11 月 8 日:初始帖子
© . All rights reserved.