1

潜伏者在这里,但我自己的问题的时间。该问题适用于此代码:http://pastebin.com/dQKnSSpY我将其发布在 pastebin 上,否则会弄乱此页面:)

我的问题是为什么当我运行这个 GUI 时 GUI 相当滞后。我已经尝试了几件事,包括 DoubleBuffering,一个用于添加控件和使用 BindingSource 的单独工作线程。还没有任何帮助。我感觉有点笨,因为通常我的 C# 技能还可以。(对 Windows 窗体很新)

提前致谢

4

2 回答 2

1

我认为您的问题在于您在 Paint 事件中创建控件。我现在在 Windows 窗体中有点生疏,但我认为当控件需要重绘自身并且由操作系统使用 WM_PAINT 消息控制时调用 Paint 事件。这可能经常发生。也许您应该尝试在 Form 构造函数中而不是在 Paint 事件中添加控件。

于 2013-04-29T09:15:12.783 回答
0

这是一个非常简单的更改,但它可能会有所帮助:

http://pastebin.com/FnXJCAUE

Screen.PrimaryScreen.WorkingArea从您的 GUI 更新中取出了计算,并用一个常量 Integer 替换了它们,该常量 Integer 在 GUI 类的初始化时只计算一次。这应该有助于减少每次 GUI 绘制执行的计算次数,从而总体上加快绘制速度,否则我没有在代码中立即看到任何会减慢速度的明显内容。

于 2013-04-29T09:09:42.087 回答