问题遇到的现象和发生背景
C#报错:System.ArgumentNullException:“Value cannot be null. Arg_ParamName_Name”
用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
public static byte[] FormAsImage(Form formName)
{ //试运行代码,如果没有问题运行try代码块内容
try
{//声明一个大小类型变量,并命名为:窗体大小,并赋值为获取用户输入的窗体的大小
Size formSize = formName.Size;
// 实例化一个与窗体大小相同的位图类型对象,并命名为:位图
using (Bitmap bitmap = new Bitmap(formSize.Width, formSize.Height))
{// 实例化一个图像对象,并命名为:图像,用于在局部变量位图上绘制
using (Graphics graphics = Graphics.FromImage(bitmap))
{// 设置高质量插值法以改善图像质量
graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
// 将窗体的内容绘制到局部变量位图上
formName.DrawToBitmap(bitmap, new Rectangle(0, 0, formSize.Width, formSize.Height));
}//声明一个新的图像型变量,并命名为:图像,并赋值为:局部变量位图的值
Image image = bitmap;
//实例化一个数据流类型,命名为:我的流
MemoryStream myStream = new MemoryStream();
// 将图片保存到我的流中
image.Save(myStream, image.RawFormat);-------报错:System.ArgumentNullException:“Value cannot be null. Arg_ParamName_Name”
//声明一个新的字节集数组型变量,并命名为:结果,并赋值为:局部变量我的流转换为字节集型数据
byte[] result = myStream.ToArray();
//返回局部变量结果的值
return result;
}
}//有异常,运行catch代码块内容,errorMessage参数是错误文本,用来存储错误内容
catch (Exception errorMessage)
{//弹出一个窗口名称是温馨提示的窗口,内容是:保存凭证数据失败,请联系公司技术部人员,换行,错误内容
MessageBox.Show("保存凭证数据失败,请联系公司技术部人员" + "\r\n" + errorMessage.Message + "\r\n" + errorMessage, "温馨提示");
//抛出异常停止执行方法
throw;
}
}
运行结果及详细报错内容
报错:
System.ArgumentNullException:“Value cannot be null. Arg_ParamName_Name”
