WinForm:拖动鼠标时选择框闪烁

时间:2010-01-20 16:49:37

标签: c# .net selection picturebox

我在图片框中创建了一个点击拖动选择框。在图片框Paint事件处理我使用

e.Graphics.DrawRectangle(pen, rectangle);

并更新矩形并刷新鼠标移动事件处理程序中的图片框。

只要鼠标保持在右下角(即向右/底拖动),选择框看起来就很平滑。但是,如果我想将鼠标向左或向上拖动,则必须不断重新设置rectangle.X / rectangle.Y,并且框内闪烁非常明显。

有更好/更有效的方法来进行绘图吗?非常感谢!

2 个答案:

答案 0 :(得分:1)

我刚刚找到解决方案:用pictureBox.Refresh()替换pictureBox.Invalidate()会使重绘顺利进行。在这种情况下,似乎Refresh()增加了巨大的开销,即使将主Form或PictureBox的DoubleBuffered属性设置为true也无济于事。

答案 1 :(得分:1)

要考虑的另一件事是DoubleBuffering

How do I enable double-buffering of a control using C# (Windows forms)?

在这里查看正确的双缓冲代码的例外答案。