-1

我想隐藏我的表单,同时让我的应用程序在后台运行。我使用了 notifyIcon 并且它始终可见。

我用过“this.Hide();” 隐藏我的表单,但不幸的是我的应用程序关闭了(也不例外)。

我也在使用线程,这种形式在第二个线程上。

请告诉我该如何解决。

4

2 回答 2

1

添加以下事件处理程序以调整表单大小并通知图标单击事件

 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;
}

但这不是关闭你的应用程序

于 2011-09-23T11:44:10.440 回答
1

我也在使用线程,这种形式在第二个线程上。

我的水晶球说您使用 ShowDialog() 来显示表单。是的,在模式对话框上调用 Hide() 将关闭它。因此,模态对话框通常会禁用应用程序中的所有窗口。如果您隐藏它,那么用户将无法返回程序,没有剩余的窗口可以激活。此表单在另一个线程上运行,否则不会影响行为。

您需要调用 Application.Run(new SomeForm()) 来避免这种情况。现在它不是模态的,你可以毫不费力地隐藏它。但实际上,避免在非 UI 线程上显示表单。没有理由,你的主线程已经很能干了。

于 2011-09-23T12:37:35.397 回答