0

まだこれを機能させることができません。通知バーには何も表示されません。これまでのところ、最小化する完全なコードは次のとおりです。

private void button6_Click(object sender, EventArgs e)
{
    this.WindowState = FormWindowState.Minimized;
}

private void Form_Resize(object sender, EventArgs e)
{
    if (WindowState == FormWindowState.Minimized)
    {
        this.Hide();
    }
}

private void notifyIcon_Click(object sender, EventArgs e)
{
    this.Show();
    this.WindowState = FormWindowState.Normal;
}

なぜこれが機能しないのですか?

4

2 に答える 2

4

通知領域には何も表示されません。コードをトレースして、何が起こっているかを確認してください。私はいくつかのコメントを追加しました:

private void button6_Click(object sender, EventArgs e)
{
    // When button 6 is clicked, minimize the form.
    this.WindowState = FormWindowState.Minimized;
}

private void Form_Resize(object sender, EventArgs e)
{
    // Catch the case where the form is minimized, including but not limited to
    // clicks on button 6.
    if (WindowState == FormWindowState.Minimized)
    {
        // In that case, hide the form.
        this.Hide();
    }
}

private void notifyIcon_Click(object sender, EventArgs e)
{
    // If the notification icon is clicked, reshow the form as a normal window.
    this.Show();
    this.WindowState = FormWindowState.Normal;
}

今問題に気づきましたか?フォームが最小化されている場合は、フォームを非表示にするだけです。NotifyIconにアイコンを表示するように指示することはありません。Visibleプロパティのデフォルト値は ですfalsetrueアイコンを表示し、アイコンを非表示にするには、に設定する必要がありますfalse

したがって、次のようにコードを変更します。

private void Form_Resize(object sender, EventArgs e)
{
    // Catch the case where the form is minimized, including but not limited to
    // clicks on button 6.
    if (WindowState == FormWindowState.Minimized)
    {
        // In that case, hide the form.
        this.Hide();

        // And display the notification icon.
        notifyIcon.Visible = true;

        // TODO: You might also want to set other properties on the
        // notification icon, like Text and/or Icon.
    }
}

private void notifyIcon_Click(object sender, EventArgs e)
{
    // If the notification icon is clicked, reshow the form as a normal window.
    this.Show();
    this.WindowState = FormWindowState.Normal;

    // And hide the icon in the notification area.
    notifyIcon.Visible = false;
}
于 2013-04-22T07:59:54.953 に答える
1

このコードを試してください:

private NotifyIcon notifyIcon;
public Form1()
{
    InitializeComponent();

    button6.Click += (sender, e) =>
        {
            this.WindowState = FormWindowState.Minimized;
        };

    this.Resize += (sender, e) =>
        {
            if (WindowState == FormWindowState.Minimized)
            {
                this.Hide();
                notifyIcon.Visible = true;
                notifyIcon.ShowBalloonTip(1000);
            }
        };

    notifyIcon = new NotifyIcon()
        {
            Text = "I'm here!",
            BalloonTipText = "I'm here!",
            Icon = Icon.ExtractAssociatedIcon(Application.ExecutablePath)
        };

    notifyIcon.Click += (sender, e) =>
        {
            this.Show();
            this.WindowState = FormWindowState.Normal;
            notifyIcon.Visible = false;
        };
}
于 2013-04-22T08:42:40.890 に答える