Визуализация значения по ключу - C#
Формулировка задачи:
Доброго времени суток, друзья. Пишу небольшую программку по анализу текстов, задача состоит в том, чтобы в введенном пользователем тексте, при наведении(или нажатии, это уж как мы сейчас решим) мышкой на слово, рядом с ним всплывало окошко с информацией о слове. Каждое слово в тексте во время его обработки представляется в виде ключа в словаре, значениями которого как раз таки и служит эта информация, которую необходимо вывести.
Вопрос заключается в следующем, возможно ли как-то сделать так, чтобы по щелчку на слово, программа понимала, какое значение выделяется?
Решение задачи: «Визуализация значения по ключу»
textual
Листинг программы
class MainForm : Form { private Dictionary<string, string> _wordInfo = new Dictionary<string, string>(StringComparer.Ordinal); public MainForm() { var tb = new TextBox(); tb.Multiline = true; tb.Location = new Point(10, 10); tb.Width = 300; tb.Height = 300; Controls.Add(tb); Width = 340; Height = 360; tb.Anchor = AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Bottom; PopulateDictionary(); ToolTip tool = null; tb.Click += (s, a) => { tool?.Dispose(); var args = (MouseEventArgs)a; int index = tb.GetCharIndexFromPosition(args.Location); if (args.Location.Y > tb.GetPositionFromCharIndex(index).Y + tb.Font.Height) return; var word = GetWord(tb.Text, index); if (word != null && _wordInfo.ContainsKey(word.ToUpper())) { tool = new ToolTip(); tool.IsBalloon = true; tool.Show(word + " - " + _wordInfo[word.ToUpper()], this, args.Location); } }; } private string GetWord(string text, int index) { if (index < 0 || index >= text.Length) return null; int left = index; while (left >= 0 && char.IsLetter(text[left])) left--; int right = index; while (right < text.Length && char.IsLetter(text[right])) right++; if (left == right) return null; else return text.Substring(left + 1, right - left - 1); } private void PopulateDictionary() { _wordInfo["Картошка".ToUpper()] = "белорусский овощ"; _wordInfo["Авокадо".ToUpper()] = "заморская хрень"; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д