【发布时间】:2014-07-14 23:48:55
【问题描述】:
我有一个通过连接到 form_resize 事件来最小化到系统托盘的表单。一切都很好,直到我在表单中添加了一个图表。当图表在表单上时,我会得到以下异常:
宽度必须大于 0px。
突出显示的行是:
this.ShowInTaskbar = false;
我花了一些时间来解决问题所在(包括它添加了导致它的图表),但设法从非常长的堆栈跟踪消息中推断出它。无论如何,我设法通过在隐藏表单之前将图表可见性设置为 false 来解决它。
private void Form1_Resize(object sender, EventArgs e)
{
if (FormWindowState.Minimized == this.WindowState)
{
//Hide chart to prevent exception
chtCompliance.Visible = false;
chtHistory.Visible = false;
icoTrayIcon.Visible = true;
icoTrayIcon.ShowBalloonTip(500);
this.ShowInTaskbar = false;
this.Hide();
}
else if (FormWindowState.Normal == this.WindowState)
{
icoTrayIcon.Visible = false;
this.ShowInTaskbar = true;
//Restore chart visibility
chtCompliance.Visible = true;
chtHistory.Visible = true;
}
}
现在...这似乎可以解决问题,但在我看来,这更像是一种解决方法而不是可靠的解决方案。有人知道解决这个问题的更优雅的方法吗? (我想一开始我可以动态查找所有图表,所以如果我添加更多,我不必将其硬编码到例程中!)
【问题讨论】:
标签: c# exception charts system-tray