Есть ли способ добавить всплывающую подсказку к определенному тексту c? - PullRequest
0 голосов
/ 19 июня 2020

Я пытаюсь добавить всплывающую подсказку к определенному тексту c с C#. Я не смог этого сделать. Мой следующий код выглядит следующим образом:

Соответствия:

    string errors = @"SendLuaScript|SendCSharpScript|SendRubyScript";
                MatchCollection errorsMatches = Regex.Matches(richTextBox1.Text, errors);

Установить свойства для этих совпадений:

foreach (Match m in errorsMatches)
            {
                ToolTip tip = new ToolTip();
                richTextBox1.SelectionStart = m.Index;
                richTextBox1.SelectionLength = m.Length;
                richTextBox1.SelectionColor = Color.DarkGray;
                tip.IsBalloon = true;
                tip.ToolTipIcon = ToolTipIcon.Error;
                tip.SetToolTip(richTextBox1, "ERROR. You must use void SendLuaScript.");

            }

Однако я знаю, что это устанавливает всплывающую подсказку для всего RichTextBox, но я хочу, чтобы это был просто c текст.

1 Ответ

0 голосов
/ 19 июня 2020

Как было предложено TaW, вот грубый стартовый код для отображения всплывающей подсказки над желаемым текстом в Richtextbox:

private void richTextBox1_MouseMove(object sender, MouseEventArgs e)
{
    bool toolTip = false;
    Point pt = new Point(e.X, e.Y);
    int index = richTextBox1.GetCharIndexFromPosition(pt);
    string errors = @"SendLuaScript|SendCSharpScript|SendRubyScript";
    MatchCollection errorsMatches = Regex.Matches(richTextBox1.Text, errors);
    foreach (Match m in errorsMatches)
    {
        if (index >= m.Index && index < m.Index + m.Length)
        {
            toolTip1.Show(m.Value, richTextBox1, pt);
            toolTip = true;
            break;
        }                
    }
    if (!toolTip)
    {
        toolTip1.Hide(richTextBox1);
    }
}
...