-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathForm1.cs
More file actions
79 lines (69 loc) · 3.34 KB
/
Form1.cs
File metadata and controls
79 lines (69 loc) · 3.34 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
using System.Collections.Generic;
using System.Drawing;
using DevExpress.XtraBars;
using DevExpress.XtraBars.Ribbon;
using DevExpress.XtraSpellChecker;
using DevExpress.XtraSpellChecker.Native;
using DevExpress.XtraSpreadsheet.Internal;
namespace SpreadsheetSpellchecking {
public partial class Form1 : RibbonForm {
SpellChecker spellChecker = new SpellChecker();
PopupMenu popupMenu = new PopupMenu();
public Form1() {
InitializeComponent();
SpellCheckTextControllersManager.Default.RegisterClass(typeof(TextBoxWithTransparency), typeof(SimpleTextBoxTextController));
SpellCheckTextBoxBaseFinderManager.Default.RegisterClass(typeof(TextBoxWithTransparency), typeof(TextBoxFinder));
spellChecker.SpellCheckMode = SpellCheckMode.AsYouType;
popupMenu.Manager = BarManager;
BarManager.QueryShowPopupMenu += OnBarManager_QueryShowPopupMenu;
spreadsheetControl.CellEditorOpened += OnSpreadsheetControl_CellEditorOpened;
}
BarManager BarManager => ribbonControl1.Manager;
void OnSpreadsheetControl_CellEditorOpened(object sender, DevExpress.XtraSpreadsheet.CellEditorOpenedEventArgs e) {
if (!e.IsCustom) {
BarManager.SetPopupContextMenu(e.Editor, popupMenu);
spellChecker.Check(e.Editor);
}
}
void OnBarManager_QueryShowPopupMenu(object sender, QueryShowPopupMenuEventArgs e) {
Point position = e.Control.PointToClient(e.Position);
DevExpress.XtraSpellChecker.Rules.SpellCheckErrorBase error = spellChecker.CalcError(position);
List<SpellCheckerCommand> commands = spellChecker.GetCommandsByError(error);
if (commands == null) {
e.Cancel = true;
return;
}
BarItemLinkCollection itemLinks = popupMenu.ItemLinks;
popupMenu.BeginUpdate();
try {
itemLinks.Clear();
foreach (SpellCheckerCommand command in commands) {
BarButtonItem item = new BarButtonItem(BarManager, command.Caption);
item.Enabled = command.Enabled;
item.Tag = command;
item.ItemClick += OnPopupMenu_ItemClick;
itemLinks.Add(item);
}
BarButtonItem itemShowSpellingForm = new BarButtonItem(BarManager, "Show Spelling Form");
itemShowSpellingForm.ItemClick += OnPopupMenuShowSpellingForm_ItemClick;
itemLinks.Add(itemShowSpellingForm);
} finally {
popupMenu.EndUpdate();
}
}
void OnPopupMenu_ItemClick(object sender, ItemClickEventArgs e) {
var checkerCommand = e.Item.Tag as SpellCheckerCommand;
checkerCommand?.DoCommand();
}
void OnPopupMenuShowSpellingForm_ItemClick(object sender, ItemClickEventArgs e) {
spellChecker.Check(this.ActiveControl);
}
private void Form1_Load(object sender, System.EventArgs e)
{
var activeSheet = spreadsheetControl.ActiveWorksheet;
activeSheet.Columns[1].WidthInPixels = 150;
spreadsheetControl.SelectedCell = activeSheet["B2"];
spreadsheetControl.SelectedCell.Value = "Missspelled wods";
}
}
}