通过任务栏单击恢复窗口时出现C#异常

时间:2013-11-28 15:28:39

标签: c# winforms

我有一个主要表单frmMain。一切都很好,但每当我最小化这个窗口,然后单击任务栏恢复它时,就会抛出异常。

例外:

  

矩形'{X = 0,Y = 0,宽度= 0,高度= 0}'不能有宽度或高度   等于0。

Program.cs

投放
Application.Run(new frmMain());

我是C#的新手,我无法解决这个问题。任何帮助都非常感谢。

修改 我没有使用自定义绘画,也没有用任何东西以编程方式处理窗口高度或宽度

由于

3 个答案:

答案 0 :(得分:3)

我假设您正在使用自定义绘画,它使用某种LinearGradientBrush或类似的东西。这会抛出ArgumentException

  

矩形' {X = 0,Y = 0,宽度= 0,高度= 0}'不能有宽度或高度   等于0。

例如,以下代码将重现问题。

Rectangle r = new Rectangle(0, 0, 0, 0);
var b = new System.Drawing.Drawing2D.LinearGradientBrush(r, Color.AliceBlue, Color.AntiqueWhite, 90);

因此,您需要确保您的矩形Size不为空(即高度和宽度不等于零)。

答案 1 :(得分:0)

我相信你将表格位置保存在某处,所以当再次跑步时你可以恢复你的位置。存储在FormClosing事件中,只读一次。

答案 2 :(得分:0)

为了避免进一步关注,如果有人找到这篇文章,那么思考就会有所帮助。

罪魁祸首是自定义控制,它具有“填充”的停靠属性。我删除了这个控件,而是使用了另一个默认控件,问题就消失了。

感谢大家的帮助。