2013-11-28 33 views
0

我有一个主窗体,frmMain。一切都很好,但每当我最小化这个窗口,然后点击任务栏恢复它,引发异常。C#异常当窗口通过任务栏恢复点击

例外:

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

是在Program.cs在线

Application.Run(new frmMain()); 

抛出在C#即时通讯新我不是能解决这个问题。任何帮助,高度赞赏。

编辑 我还没有使用自定义的画,也没有用到任何处理窗口的高度或宽度编程

感谢

+0

你可以发布堆栈跟踪吗? –

+0

您的表单中是否有处理Rectangle类的自定义代码? – Luaan

+0

关于编辑,位置相关的代码和堆栈跟踪将有所帮助 –

回答

0

相信您存储形式位置的地方,以便再次运行时可以恢复你的位置。存储在FormClosing事件并只读一次。

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不为空(即高度和宽度不等于零)。

0

为了避免进一步的注意,思考会有帮助,如果有人找到这篇文章。

罪魁祸首是自定义控制,其中有码头属性“填充”。我删除了这个控件,而是使用了另一个默认控件,问题就没有了。

谢谢大家的帮助。