我有一个音频文件的波形。在波形的最后,我想在波形结束前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);
}
答案 0 :(得分:1)
在表单中声明tooltip1
,而不是在鼠标移动时创建新实例,也就是每次创建新实例时,当您调用tooltip1.Hide()
时,您没有隐藏旧工具提示,你正在隐藏新创建的“已经没有显示......”。
另请考虑将表单DoubleBuffer设置为true
,用于减少闪烁。