调用非托管DLL中的函数后DataGrid的OnPaint方法系统报"溢出错误。"
在代码中调用了一个非托管DLL中的函数之后系统"溢出错误。",调试的时候发现问题出在DataGrid.OnPaint(PaintEventArgs pe)方法中,发现调用该方法时,pe.Graphics.ClipBounds的值变成了{X=NaN Y=NaN Width=NaN Height=NaN},但我不知道这些NaN是怎么产生的,现在我暂时重载了OnPaint方法:
protected override void OnPaint(PaintEventArgs e)
{
try
{
if (!Single.IsNaN(e.Graphics.ClipBounds.Left) &&
!Single.IsNaN(e.Graphics.ClipBounds.Top) &&
!Single.IsNaN(e.Graphics.ClipBounds.Width) &&
!Single.IsNaN(e.Graphics.ClipBounds.Width))
{
base.OnPaint (e);
}
}
catch(Exception ex)
{
throw ex;
}
}
把这个问题给绕过去了,但毕竟是治标不治本的方法,不知道大家有没有遇到过类似的问题,请帮忙分析分析问题可能出在什么地方,谢谢!