2010-01-11 81 views
1

我想使表单默认为不可见。当用户双击托盘图标时,它应该是可见的,显示来自数据库的数据。我如何在C#中做这样的事情。 我制作了系统托盘图标,但是当我运行一个项目时,它也显示了我的空白值。 在此先感谢。C#如何通过双击托盘图标启用表单

我的托盘图标位于同一窗体中。

+0

您是使用WinForms还是WPF? – 2010-01-11 11:18:01

+0

可能的重复 - http://stackoverflow.com/questions/995195/writing-a-windows-system-tray-application-with-net,http://stackoverflow.com/questions/158895/how-to-make-一个 - 窗口形式净应用显示-AS-托盘图标 – ChrisF 2010-01-11 11:19:51

回答

0

我假设您使用WindowsForms并使用NotifyIcon类创建了托盘图标。在设计器中将您的窗体Visible属性设置为False。这将导致窗体开始隐藏。

然后在您的托盘图标中单击og DoubleClick事件处理程序将True的Visible属性设置为显示它。或者,您可以在此创建一个新的窗体类实例并显示该窗体。

2

修补Visible属性不起作用,Application类强制它,以便表单正确初始化自己。但是,您可以重写SetVisibleCore()以自定义行为。将此代码粘贴到您的表单中:

bool mLoaded; 

protected override void SetVisibleCore(bool value) { 
    if (value && !mLoaded) { 
    this.CreateHandle(); // Ensure the Load event runs 
    value = false;   // Keep invisible 
    mLoaded = true; 
    } 
    base.SetVisibleCore(value); 
}