我正在编写一个应用程序,我在System.Windows.Forms.Panel上使用类似的代码显示System.Drawing.Icon对象:
Graphics g = _panel.CreateGraphics();
g.DrawIcon(this.NodeIcon, _rectangle);
我有使用拖放功能移动图标的代码。 我的问题是,当用户移动图标时,它是平滑的。 图标看起来很扭曲,直到用户停止移动图标。
我试图在网上找到这方面的信息,但我不能让它顺利。 我以前很少有这种特殊编码的经验(使用图形)所以我是这个的新手。
如果有任何善良的灵魂可以帮助我提供一些提示,那将非常感激。
提前致谢!
答案 0 :(得分:0)
我相信你要做的是在MouseMove事件处理程序上重绘控件。看起来你的问题是重绘面板时的闪烁。首先,您可以尝试将true设置为面板的DoubleBuffered属性。这样做可以将面板设置为使用辅助缓冲区重绘其表面,以减少或防止闪烁。此属性受保护,因此您需要创建一个新的面板后代:
public class TestPanel : Panel
{
public TestPanel()
{
DoubleBuffered = true;
}
}
作为替代方案,您可以通过反射
为面板设置DoubleBuffered属性希望这有帮助,尊重