Brush b = new SolidBrush(Color.White);
            Pen pen = new Pen(b);
            Font font = new Font("宋体", 15, FontStyle.Regular);
            //float fPx = 15 / 72 * 96; 
            try
            {
                gx.DrawString(this.StrNumber, font, b, clientArea.Location.X + 25, clientArea.Bottom - 35);
            }
            catch(Exception e)
            {
                Log.WriteTextLog("画图错误信息",e.ToString());
            }
上面这段代码 在大部门机器上都可以运行,但在个别电脑上会报这样的错误:
System.ArgumentException: Parameter is not valid.
   at System.Drawing.Graphics.CheckErrorStatus(Int32 status)
   at System.Drawing.Graphics.DrawString(String s, Font font, Brush brush, RectangleF layoutRectangle, StringFormat format)
   at System.Drawing.Graphics.DrawString(String s, Font font, Brush brush, Single x, Single y)
   at VOD.ItemBar.Paint(Graphics gx)
参数无效,请问是字体还是画刷的问题?还是其他问题呢

解决方案 »

  1.   

    这个就需要你自己去调试了,看看那些个别机器和你说的大部分机器有什么区别,然后用别的参数试试,另外,似乎pen这个对象并没有被使用,最后就是使用完了的Brush和Font对象要根据需要进行dispose。
      

  2.   

    参数无效
    记录看看this.StrNumber, font, b, clientArea.Location.X + 25, clientArea.Bottom 值
      

  3.   

    可能drawstring时的目标画布已经被释放