We all drop and use Rich Text Box controls in our VB apps. It is a rich control (hence the name
RichTextBox), with many options to format text. However, all options have to be used through coding in the background.
I have also worked with RTBs in several different applications, so I wrote this small extended control for the
RichTextBox that displays a toolbar on top, with some common options that the user can perform. One cool option that I added is the spell check option (with help from another article on CodeProject, NetSpell - Spell Checker for .NET).
So instead of dropping the
RichTextBox in your form, drop the Extended
I have seen several different posts for complete VB applications on the Internet that use
RichTextBoxes to create WordPad type applications. They are very helpful for code reference, but you cannot just easily drop it in as a control and start using it. That is why I had to write this control.
Using the Code
Basically if you just need to use the control on your form, you can simply add the DLL as a reference, and be done with it. Download the demo project to see how that is setup. Make sure to include the en-US.dic file in your project. You can still use the control just as you would use a
RichTextBox. The only difference is that it shows a nifty toolbox on top with options.
The actual control project is also included, so you can easily add other options and buttons if you need, or maybe even remove one if needed. All you have to do is handle the button click.
For example, this is how I handle toggling bullets:
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
The first line performs the function, and the second line toggles the button for the function. Most function implementations are just that simple.
Points of Interest
Note that if you select text that has formatting, it actually toggles the boxes. This is handled in the
SelectionChanged event of the
RichTextBox by simply setting the buttons checked value by comparing what the settings are at that position in the
Possible Future Updates
I might post an update with options to hide/show each button, so that it makes it easy for the control user to control it better. Also, there are tons of features to add, like
ComboBox font and font size selection, picture/object insert, save/open RTF files, etc.
- 8th November, 2008: Initial post