gpt4 book ai didi

c# - System.Drawing.dll 中发生类型为 'System.ArgumentException' 的第一次机会异常

转载 作者:行者123 更新时间:2023-11-30 19:01:46 25 4
gpt4 key购买 nike

我正在尝试制作全屏屏幕截图并将其加载到 pictureBox 中,但它给了我这个错误:System.Drawing.dll 中出现类型为“System.ArgumentException”的第一次机会异常附加信息:Ongeldige 参数。

代码:

    using (Bitmap bmpScreenCapture = new Bitmap(Screen.PrimaryScreen.Bounds.Width,
Screen.PrimaryScreen.Bounds.Height))
{
using (Graphics g = Graphics.FromImage(bmpScreenCapture))
{
g.CopyFromScreen(Screen.PrimaryScreen.Bounds.X,
Screen.PrimaryScreen.Bounds.Y,
0, 0,
bmpScreenCapture.Size,
CopyPixelOperation.SourceCopy);
}

pictureBox1.Image = bmpScreenCapture;
}

乔里。

最佳答案

出现异常是因为using语句将Bitmap赋值给pictureBox1.Image后进行了处理,导致PictureBox在重绘时无法显示位图本身:

using (Bitmap bmpScreenCapture = new Bitmap(Screen.PrimaryScreen.Bounds.Width,
Screen.PrimaryScreen.Bounds.Height))
{
// ...

pictureBox1.Image = bmpScreenCapture;
} // <== bmpScreenCapture.Dispose() gets called here.

// Now pictureBox1.Image references an invalid Bitmap.

要解决此问题,请保留位图变量声明和初始值设定项,但删除using:

Bitmap bmpScreenCapture = new Bitmap(Screen.PrimaryScreen.Bounds.Width,
Screen.PrimaryScreen.Bounds.Height);

// ...

pictureBox1.Image = bmpScreenCapture;

您仍应确保位图最终得到处理,但只有当您确实不再需要它时(例如,如果您稍后将 pictureBox1.Image 替换为另一个位图)。

关于c# - System.Drawing.dll 中发生类型为 'System.ArgumentException' 的第一次机会异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22273196/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com