0

我在图片框中制作了一个单击拖动选择框。在我使用的图片框 Paint 事件处理程序中

e.Graphics.DrawRectangle(pen, rectangle);

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

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

有没有更好/更有效的绘图方法?非常感激!

4

2 回答 2

1

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

于 2010-01-21T03:51:01.590 回答
1

另一件要考虑的事情是 DoubleBuffering

如何使用 C#(Windows 窗体)启用控件的双缓冲?

在此处查看例外答案以获取正确的双缓冲代码。

于 2010-01-21T04:04:27.640 回答