0

我有这样的代码:

public form()
{
    InitializeComponent();
    init(); //read ini and try to minimize
}

private void timer1_Tick(object sender, EventArgs e)
{
}

在 ini 方法中,我最小化表单并隐藏它(在调试中我可以看到 form.visible = false),但是当它离开 init 方法时,它会跳转到计时器并更改可见 = true,我可以在任务栏和托盘中看到我的应用程序。我只想看到托盘图标。我用来最小化表格到托盘。

到目前为止,我做了这个,但可能是以错误的方式实现的,因为当显示表单时,表单会像刷新一样,看起来很奇怪。

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

    private void minimizeWindow()//this method is called on form resize
    {
        if (FormWindowState.Minimized == this.WindowState)
        {
            notifyIcon1.Visible = true;
            this.Hide();
            this.ShowInTaskbar = false;
        }
        else if (FormWindowState.Normal == this.WindowState)
        {
            notifyIcon1.Visible = false;
            this.ShowInTaskbar = true;
        }
    }
4

3 回答 3

1

要从任务栏中隐藏窗口,您可以使用ShowInTaskbar属性。在你的init方法中试试这个东西:

form.ShowInTaskbar = false;
于 2012-05-23T10:01:01.463 回答
0

如果您的程序设置为最小化到系统托盘,您可以在加载时添加最小化事件!

或者您可以在加载时添加Me.Opacity = 0Me.Opacity = 1再次单击系统托盘图标时),然后隐藏任务栏按钮!

于 2012-05-23T09:59:36.520 回答
0

解决方案很简单:

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

    private void minimizeWindow()
    {
        if (FormWindowState.Minimized == this.WindowState)
        {
            notifyIcon1.Visible = true;
            this.Hide();
        }
        else if (FormWindowState.Normal == this.WindowState)
        {
            notifyIcon1.Visible = false;
        }
    }

        private void AAL_Load(object sender, EventArgs e)
    {
        minimizeWindow();//call it again
    }

不要使用 form.ShowInTaskbar = false; 因为这会带来很多问题。

于 2012-05-24T08:40:39.503 回答