-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathForm1.vb
More file actions
86 lines (73 loc) · 3.78 KB
/
Form1.vb
File metadata and controls
86 lines (73 loc) · 3.78 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
Imports System.Collections.Generic
Imports System.Drawing
Imports DevExpress.XtraBars
Imports DevExpress.XtraBars.Ribbon
Imports DevExpress.XtraSpellChecker
Imports DevExpress.XtraSpellChecker.Native
Imports DevExpress.XtraSpreadsheet.Internal
Namespace SpreadsheetSpellchecking
Public Partial Class Form1
Inherits RibbonForm
Private spellChecker As SpellChecker = New SpellChecker()
Private popupMenu As PopupMenu = New PopupMenu()
Public Sub New()
InitializeComponent()
SpellCheckTextControllersManager.[Default].RegisterClass(GetType(TextBoxWithTransparency), GetType(SimpleTextBoxTextController))
SpellCheckTextBoxBaseFinderManager.[Default].RegisterClass(GetType(TextBoxWithTransparency), GetType(TextBoxFinder))
spellChecker.SpellCheckMode = SpellCheckMode.AsYouType
popupMenu.Manager = BarManager
AddHandler Me.BarManager.QueryShowPopupMenu, AddressOf OnBarManager_QueryShowPopupMenu
AddHandler Me.spreadsheetControl.CellEditorOpened, AddressOf OnSpreadsheetControl_CellEditorOpened
End Sub
Private ReadOnly Property BarManager As BarManager
Get
Return ribbonControl1.Manager
End Get
End Property
Private Sub OnSpreadsheetControl_CellEditorOpened(ByVal sender As Object, ByVal e As DevExpress.XtraSpreadsheet.CellEditorOpenedEventArgs)
If Not e.IsCustom Then
BarManager.SetPopupContextMenu(e.Editor, popupMenu)
spellChecker.Check(e.Editor)
End If
End Sub
Private Sub OnBarManager_QueryShowPopupMenu(ByVal sender As Object, ByVal e As QueryShowPopupMenuEventArgs)
Dim position As Point = e.Control.PointToClient(e.Position)
Dim [error] As DevExpress.XtraSpellChecker.Rules.SpellCheckErrorBase = spellChecker.CalcError(position)
Dim commands As List(Of SpellCheckerCommand) = spellChecker.GetCommandsByError([error])
If commands Is Nothing Then
e.Cancel = True
Return
End If
Dim itemLinks As BarItemLinkCollection = popupMenu.ItemLinks
popupMenu.BeginUpdate()
Try
itemLinks.Clear()
For Each command As SpellCheckerCommand In commands
Dim item As BarButtonItem = New BarButtonItem(BarManager, command.Caption)
item.Enabled = command.Enabled
item.Tag = command
AddHandler item.ItemClick, AddressOf OnPopupMenu_ItemClick
itemLinks.Add(item)
Next
Dim itemShowSpellingForm As BarButtonItem = New BarButtonItem(BarManager, "Show Spelling Form")
AddHandler itemShowSpellingForm.ItemClick, AddressOf OnPopupMenuShowSpellingForm_ItemClick
itemLinks.Add(itemShowSpellingForm)
Finally
popupMenu.EndUpdate()
End Try
End Sub
Private Sub OnPopupMenu_ItemClick(ByVal sender As Object, ByVal e As ItemClickEventArgs)
Dim checkerCommand = TryCast(e.Item.Tag, SpellCheckerCommand)
checkerCommand?.DoCommand()
End Sub
Private Sub OnPopupMenuShowSpellingForm_ItemClick(ByVal sender As Object, ByVal e As ItemClickEventArgs)
spellChecker.Check(Me.ActiveControl)
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim activeSheet = spreadsheetControl.ActiveWorksheet
activeSheet.Columns(1).WidthInPixels = 150
spreadsheetControl.SelectedCell = activeSheet("B2")
spreadsheetControl.SelectedCell.Value = "Missspelled wods"
End Sub
End Class
End Namespace