Всплывающая подсказка. - PullRequest
2 голосов
/ 28 июля 2011

У меня есть форма аудиофайла.В конце осциллограммы я хочу отобразить некоторый текст в области за 50 пикселей до конца осциллограммы в кончике.Я хочу, чтобы всплывающая подсказка отображалась только в области, которая лежит от 50 пикселей до конца сигнала до его конца.Я написал некоторый код, но он вызывает мерцание всплывающей подсказки, т. Е. Когда я перемещаю мышь, подсказка продолжает появляться.Пожалуйста, помогите остановить мерцание.Код:

private void Waveform_MouseMove(object sender, MouseEventArgs e)
{
    bool IsMatching = false;
    ToolTip tooltip1 = new ToolTip();
    if (e.X <= this.Width && e.X >= this.Width - 50)
    {
       tooltip1.Show("end here", this, e.X, e.Y);
       IsMatching = true;
    }

   if(!IsMatching)
       tooltip1.Hide(this);
}

1 Ответ

1 голос
/ 29 июля 2011

Объявляйте tooltip1 в форме вместо создания нового экземпляра при каждом перемещении мыши, а также когда вы создаете новый экземпляр каждый раз, когда вы вызываете tooltip1.Hide(), вы не скрываете подсказку старого инструмента, вы скрываететолько что созданный "который уже не отображается ..".

Также рассмотрите возможность установки формы DoubleBuffer на true, она используется для уменьшения мерцания.

...