工具提示闪烁。

时间:2011-07-28 19:14:08

标签: c# winforms c#-3.0 tooltip flicker

我有一个音频文件的波形。在波形的最后,我想在波形结束前50个像素区域中显示一些文本,在tooptip中。我希望工具提示只显示在波形结束前到波形结束前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 个答案:

答案 0 :(得分:1)

在表单中声明tooltip1,而不是在鼠标移动时创建新实例,也就是每次创建新实例时,当您调用tooltip1.Hide()时,您没有隐藏旧工具提示,你正在隐藏新创建的“已经没有显示......”。

另请考虑将表单DoubleBuffer设置为true,用于减少闪烁。

相关问题