private void SqlTextBox_IndicatorClick(object sender, IndicatorClickEventArgs e) { if (_compilationErrors.ContainsKey(e.Position)) { sqlTextBox.CallTipShow(e.Position, _compilationErrors[e.Position]); } }
private void textEditor_IndicatorClick(object sender, IndicatorClickEventArgs e) { var style = textEditor.IndicatorAllOnFor(e.Position); if ((style & 2) == 0) { return; } var lineIndex = textEditor.LineFromPosition(e.Position); var line = textEditor.Lines[lineIndex]; var offset = e.Position - line.Position; var wordStart = FindWordStartBackwards(line.Text, offset); var wordEnd = FindWordEnd(line.Text, offset); var word = line.Text.Substring(wordStart, wordEnd - wordStart); var suggestions = SpellChecker.Suggest(word); var contextMenu = new ContextMenuStrip(); if (suggestions.Count == 0) { contextMenu.Items.Add("No suggestions"); } else { foreach (var suggestion in suggestions) { var item = new ToolStripMenuItem(suggestion); item.Click += (s, args) => { textEditor.TargetStart = wordStart + line.Position; textEditor.TargetEnd = wordEnd + line.Position; textEditor.ReplaceTarget(item.Text); }; contextMenu.Items.Add(item); } } var addOption = new ToolStripMenuItem("add to dictionary"); addOption.Click += (s, args) => { ControllerCommand(new Commands.AddWordToDictionary(word)); textEditor.Invalidate(); }; contextMenu.Items.Add(addOption); contextMenu.Show(this, textEditor.PointToClient(Control.MousePosition)); }