0

私のWindowsフォームアプリケーション(C#)には、次のようなコードがあります:

            private void frm_main_Resize(object sender, EventArgs e)
    {
        if ((this.WindowState == FormWindowState.Minimized) && (checkBox1.Checked))
        {
            this.ShowInTaskbar = false;

            notifyIcon1.Visible = true;
        }
    }

    private void notifyIcon1_DoubleClick(object Sender, EventArgs e)
    {
        if (this.WindowState == FormWindowState.Minimized)
        {
            this.WindowState = FormWindowState.Normal;
        }
        else
        {
            this.WindowState = FormWindowState.Minimized;
        }

        this.Activate();
    }

私の公開フォームにはダブルクリックハンドラがあります notifyIcon1.DoubleClick += new System.EventHandler(this.notifyIcon1_DoubleClick);

最小化されたアプリがまだタスクバーに表示されている場合、それを変更する方法は? 最小化された状態では、システム トレイにのみ表示されるようにしたいと考えています。このcoce deosntが機能しないのはなぜですか?

4

1 に答える 1

2

私はプロジェクトで同様のコードを使用していますが、これは機能しており、非表示にして表示する必要はありません。

private void frm_main_Resize(object sender, EventArgs e)
{
    if (this.WindowState == FormWindowState.Minimized && checkBox1.Checked)
    {
        this.ShowInTaskbar = false;
        notifyIcon1.Visible = true;
    }
}

またMouseClick、代わりにイベントを処理してみてくださいDoubleClick

  private void notifyIcon1_MouseClick(object sender, MouseEventArgs e)
  {
     if (e.Button == System.Windows.Forms.MouseButtons.Left && e.Clicks == 2)
     {
        this.WindowState = FormWindowState.Normal;
        this.ShowInTaskbar = true;
        notifyIcon1.Visible = false;
        this.Activate();
     }
  }
于 2013-01-07T21:31:34.697 に答える