2014-03-12 35 views
0

我正试图将我的winapp最小化为系统托盘。我已经从codeproject下载了一个示例项目。但是它会在Form.Resize事件上执行systary。代码 -Windows应用程序中的NotifyIcon和Form.Resize事件

private void Form_Resize(object sender, EventArgs e) 
    { 
     notifyIcon1.BalloonTipTitle = "Minimize to Tray App"; 
     notifyIcon1.BalloonTipText = "You have successfully minimized your form."; 

     if (FormWindowState.Minimized == this.WindowState) 
     { 
      notifyIcon1.Visible = true; 
      notifyIcon1.ShowBalloonTip(500); 
      this.Hide();  
     } 
     else if (FormWindowState.Normal == this.WindowState) 
     { 
      notifyIcon1.Visible = false; 
     } 
    } 

是否有必要在resize事件上处理它?我可以做按钮点击事件吗?

+1

Windows窗体不允许任何事件获取窗口状态更改(最小化,最大化或恢复)的通知。如果你想隐藏你的窗口最小化和那个时候你想显示通知图标。那么只有简单的方法来获取通知是你的窗口最小化或不。但是,如果你想显示通知图标,甚至窗口不是最小化,那么只需将这些代码放入表单加载即可。 – 2014-03-12 06:09:53

回答

1

您可以在按钮中执行此操作。出于显而易见的原因,你不能依赖你的按钮中的WindowState,因为只有当窗口没有被最小化时才能点击它。

private void button1_Click(object sender, EventArgs e) 
{ 
    notifyIcon1.BalloonTipTitle = "Minimize to Tray App"; 
    notifyIcon1.BalloonTipText = "You have successfully minimized your form."; 

    notifyIcon1.Visible = true; 
    notifyIcon1.ShowBalloonTip(500); 
    this.Hide(); 
} 

这应该工作以“最小化”托盘。虽然它应该被称为隐藏按钮点击到托盘。

相关问题