在重写的OnPaint方法中,Gdi +中发生了一般错误

时间:2016-12-15 10:04:12

标签: c# winforms gdi+

我正在处理用户控件,我想在其上执行一些绘画(例如DrawBorder)。这工作正常,但在一个场景中抛出ExternalException(gdi +中发生了一般错误);

我使用远程桌面连接从PC2访问PC1(远程PC)。 PC1(远程PC)正在运行我的应用程序,如果我最小化PC2上的RemoteDesktopConnection窗口。

protected override void OnPaint(PaintEventArgs e)
{
    e.Graphics.Clear(Color.Black);         //Exception is thrown here

    DrawBorder(e.Graphics);

    base.OnPaint(e);
}

根据MSDN page on Graphics.Clear

  

Clear方法清除图形对象的状态,应该   当图形对象无法更新时不被调用。例如,   如果在终端服务器中的安全桌面上调用Clear方法   会话,可能会发生ExternalException,留下Graphics对象   处于不一致的状态。

如何摆脱这个问题?有没有办法在调用Clear方法之前验证图形对象?

This question陈述了类似的问题,但该问题的OP无法重现它。但就我而言,每次执行上述代码时都会发生这种情况。

0 个答案:

没有答案
相关问题