0

我正在使用我在互联网上某处找到的自定义 ProgressBar-Control,它使我能够控制颜色,并且总而言之对其进行了一些调整。现在它第一次失败了。下图是我经常设置值一段时间后看到的。我将它用于下载大量小文件的启动器,我认为更新 ProgressBar 太快可能是导致此错误的原因。

有没有人知道,到底发生了什么? 图片

问候

// 编辑:我找到了解决方案:由于某种原因,ARGB 值为 -2.147.483.648。这个小代码处理这种情况:

if (a > 255) { a = 255; } if (a < 0) { a = 0; }
if (r > 255) { r = 255; } if (r < 0) { r = 0; }
if (g > 255) { g = 255; } if (g < 0) { g = 0; }
if (b > 255) { b = 255; } if (b < 0) { b = 0; }

return (Color.FromArgb(a, r, g, b));
4

2 回答 2

0

代码在与绘制相关的方法之一中崩溃,例如 customdraw 或类似的方法。

此处的异常不会报告为“未处理”,因为在框架级别上有一个有效的 try/catch 块会吞下它,然后它会恢复为显示带有那个大红叉的控件。

这绕过了 Visual Studio 的正常“弹出未处理异常”功能,这就是它只是静默崩溃的原因。

要在调试期间捕获此异常,请从“调试”菜单中打开“异常”对话框,然后单击“公共语言运行时异常”的“抛出”列中的复选框,这将使调试器在该异常被抛出时停止,而不仅仅是在它发生时不处理。

于 2013-06-26T10:32:32.273 回答
0

发生 GDI+ 错误时,会显示一个红叉。

于 2013-06-26T10:51:19.583 回答