Hide form to notifyIcon

from https://www.itlab51.com/?p=2482


デザイン

1. フォーム (Form1) に NotifyIcon (notifyIcon1) を配置します。
2. フォーム (Form1) にリストボックス (listBox1) を配置します。

サンプルコード (C#)

// 名前空間の追加
// (なし)

// コード
private void Form1_ClientSizeChanged(object sender, EventArgs e)
{
  notifyIcon1.Icon = new Icon(@"C:\Windows\Installer\{FF6BA80C-E7E4-3BA8-945D-BC6EC31E41C4}\Icon_msi.ico");

  if (this.WindowState == FormWindowState.Minimized)
  {
    this.WindowState = FormWindowState.Normal;
    this.ShowInTaskbar = false;
    this.Visible = false;
  }
}

private void notifyIcon1_DoubleClick(object sender, EventArgs e)
{
  this.Visible = true;
  this.ShowInTaskbar = true;
  notifyIcon1.Icon = null; 
}

解説

フォームを最小化すると、タスクバーに格納せずに通知領域に格納します。通知領域のアイコンをダブルクリックすると、元に戻ります。
実現方法は、最小化時にタスクバーへのアプリケーションアイコンを消すとともにフォームを非表示にしています。また、最小化状態をノーマル状態にしていますが、これは最小化状態のままですと、Windows 3.1 の時代のような最小化状態がスタートメニューの上にまれに見えてしまうからです。
通知領域のアイコンをダブルクリックすると最小化時の挙動と逆の動作を行って、アプリケーションを元の状態に戻しています。







from https://dobon.net/vb/dotnet/form/showintaskbar.html

フォームをタスクバーに表示しないようにするには、フォームのShowInTaskbarプロパティをFalseにします。
//タスクバーに表示しない
f.ShowInTaskbar = false;



from https://www.weblio.jp/content/NotifyIcon

    private void notifyIcon1_DoubleClick(object
 Sender, EventArgs e) 
    {
        // Show the form when the user double clicks on the notify icon.

        // Set the WindowState to normal if the form is minimized.
        if (this.WindowState == FormWindowState.Minimized)
            this.WindowState = FormWindowState.Normal;

        // Activate the form.
        this.Activate();
    }

留言

熱門文章