140 lines
5.8 KiB
VB.net
140 lines
5.8 KiB
VB.net
Imports System.Windows.Forms
|
|
|
|
Public Class RichTextBoxEx
|
|
|
|
Private Sub RichTextBoxEx_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
|
|
' Load control
|
|
rtb.Focus()
|
|
End Sub
|
|
|
|
' Spell checking thanks to: http://www.codeproject.com/KB/string/netspell.aspx
|
|
|
|
' Handles when user chooses to delete in spell cehck
|
|
Private Sub SpellChecker_DeletedWord(ByVal sender As Object, ByVal e As NetSpell.SpellChecker.SpellingEventArgs) Handles SpellChecker.DeletedWord
|
|
'save existing selecting
|
|
Dim start As Integer = rtb.SelectionStart
|
|
Dim length As Integer = rtb.SelectionLength
|
|
|
|
'select word for this event
|
|
rtb.Select(e.TextIndex, e.Word.Length)
|
|
|
|
'delete word
|
|
rtb.SelectedText = ""
|
|
|
|
If ((start + length) > rtb.Text.Length) Then
|
|
length = 0
|
|
End If
|
|
|
|
'restore selection
|
|
rtb.Select(start, length)
|
|
|
|
End Sub
|
|
|
|
' Handles replacing a word from spell checking
|
|
Private Sub SpellChecker_ReplacedWord(ByVal sender As Object, ByVal e As NetSpell.SpellChecker.ReplaceWordEventArgs) Handles SpellChecker.ReplacedWord
|
|
'save existing selecting
|
|
Dim start As Integer = rtb.SelectionStart
|
|
Dim length As Integer = rtb.SelectionLength
|
|
|
|
'select word for this event
|
|
rtb.Select(e.TextIndex, e.Word.Length)
|
|
|
|
'replace word
|
|
rtb.SelectedText = e.ReplacementWord
|
|
|
|
If ((start + length) > rtb.Text.Length) Then
|
|
length = 0
|
|
End If
|
|
|
|
'restore selection
|
|
rtb.Select(start, length)
|
|
End Sub
|
|
|
|
' Update buttons when text is selected
|
|
Private Sub rtb_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles rtb.SelectionChanged
|
|
' see which buttons should be checked or unchecked
|
|
BoldToolStripButton.Checked = rtb.SelectionFont.Bold
|
|
UnderlineToolStripButton.Checked = rtb.SelectionFont.Underline
|
|
LeftToolStripButton.Checked = IIf(rtb.SelectionAlignment = System.Windows.Forms.HorizontalAlignment.Left, True, False)
|
|
CenterToolStripButton.Checked = IIf(rtb.SelectionAlignment = System.Windows.Forms.HorizontalAlignment.Center, True, False)
|
|
RightToolStripButton.Checked = IIf(rtb.SelectionAlignment = System.Windows.Forms.HorizontalAlignment.Right, True, False)
|
|
BulletsToolStripButton.Checked = rtb.SelectionBullet
|
|
|
|
'cmbFontName.Text = rtb.SelectionFont.Name
|
|
'cmbFontSize.Text = rtb.SelectionFont.SizeInPoints
|
|
|
|
End Sub
|
|
|
|
Private Sub checkBullets()
|
|
If rtb.SelectionBullet = True Then
|
|
BulletsToolStripButton.Checked = True
|
|
Else
|
|
BulletsToolStripButton.Checked = False
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub FontToolStripButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FontToolStripButton.Click
|
|
If FontDlg.ShowDialog() <> Windows.Forms.DialogResult.Cancel Then
|
|
rtb.SelectionFont = FontDlg.Font
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub FontColorToolStripButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FontColorToolStripButton.Click
|
|
If ColorDlg.ShowDialog() <> Windows.Forms.DialogResult.Cancel Then
|
|
rtb.SelectionColor = ColorDlg.Color
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub BoldToolStripButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BoldToolStripButton.Click
|
|
' Switch Bold
|
|
Dim currentFont As System.Drawing.Font = rtb.SelectionFont
|
|
Dim newFontStyle As System.Drawing.FontStyle
|
|
If rtb.SelectionFont.Bold = True Then
|
|
newFontStyle = currentFont.Style - Drawing.FontStyle.Bold
|
|
Else
|
|
newFontStyle = currentFont.Style + Drawing.FontStyle.Bold
|
|
End If
|
|
rtb.SelectionFont = New Drawing.Font(currentFont.FontFamily, currentFont.Size, newFontStyle)
|
|
|
|
' Check/Uncheck Bold button
|
|
BoldToolStripButton.Checked = IIf(rtb.SelectionFont.Bold, True, False)
|
|
End Sub
|
|
|
|
Private Sub SpellcheckToolStripButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
|
|
SpellChecker.Text = rtb.Text
|
|
''SpellChecker.SpellCheck()
|
|
End Sub
|
|
|
|
Private Sub UnderlineToolStripButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles UnderlineToolStripButton.Click
|
|
' Switch Underline
|
|
Dim currentFont As System.Drawing.Font = rtb.SelectionFont
|
|
Dim newFontStyle As System.Drawing.FontStyle
|
|
If rtb.SelectionFont.Underline = True Then
|
|
newFontStyle = currentFont.Style - Drawing.FontStyle.Underline
|
|
Else
|
|
newFontStyle = currentFont.Style + Drawing.FontStyle.Underline
|
|
End If
|
|
rtb.SelectionFont = New Drawing.Font(currentFont.FontFamily, currentFont.Size, newFontStyle)
|
|
|
|
' Check/Uncheck Underline button
|
|
UnderlineToolStripButton.Checked = IIf(rtb.SelectionFont.Underline, True, False)
|
|
End Sub
|
|
|
|
Private Sub LeftToolStripButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LeftToolStripButton.Click
|
|
rtb.SelectionAlignment = HorizontalAlignment.Left
|
|
End Sub
|
|
|
|
Private Sub CenterToolStripButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CenterToolStripButton.Click
|
|
rtb.SelectionAlignment = HorizontalAlignment.Center
|
|
End Sub
|
|
|
|
Private Sub RightToolStripButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RightToolStripButton.Click
|
|
rtb.SelectionAlignment = HorizontalAlignment.Right
|
|
End Sub
|
|
|
|
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
|
|
End Class
|