C# 窗体在停用事件时隐藏

C# 窗体在停用事件时隐藏,c#,winforms,events,C#,Winforms,Events,正如您在下面的代码中看到的,如果触发停用事件,表单将被隐藏,如果单击notifyIcon,表单将再次显示,问题是,当表单状态可见,然后单击notifyIcon,表单将被隐藏并立即再次显示,我不希望出现这种行为,请有人帮助我 private void FormMain_Deactivate(object sender, EventArgs e) { this.Hide(); } private void notifyIcon_MouseClick(

正如您在下面的代码中看到的,如果触发停用事件,表单将被隐藏,如果单击notifyIcon,表单将再次显示,问题是,当表单状态可见,然后单击notifyIcon,表单将被隐藏并立即再次显示,我不希望出现这种行为,请有人帮助我

    private void FormMain_Deactivate(object sender, EventArgs e)
    {
        this.Hide();
    }

    private void notifyIcon_MouseClick(object sender, MouseEventArgs e)
    {
        if (e.Button == MouseButtons.Left)
        {
            this.Show();
            this.Activate();
        }
    }
在黑暗中刺伤,因为此刻我远离我的身边。。。祝你好运:-)

在黑暗中刺伤,因为此刻我远离我的身边。。。祝你好运:-)

试试这个:

this.Hide();
(FormToBeDisplayed).ShowDialog();
this.Show();
试试这个:

this.Hide();
(FormToBeDisplayed).ShowDialog();
this.Show();

您只需验证它是否可见

 private void FormMain_Deactivate(object sender, EventArgs e)
 {
     this.Hide();
 }

  private void notifyIcon_MouseClick(object sender, MouseEventArgs e)
 {
   if (e.Button == MouseButtons.Left && !this.isVisible)
   {
         this.Show();
         this.Activate();
   }
 }

希望它能有所帮助:)

你应该简单地验证它是否可见

 private void FormMain_Deactivate(object sender, EventArgs e)
 {
     this.Hide();
 }

  private void notifyIcon_MouseClick(object sender, MouseEventArgs e)
 {
   if (e.Button == MouseButtons.Left && !this.isVisible)
   {
         this.Show();
         this.Activate();
   }
 }

希望它能有所帮助:)

看看你提到的问题中给出的解决方案仍然有不足之处,因为如果用户单击的速度超过指定的时间(在本例中为1000毫秒),那么表单将不会显示,我希望类似于开始菜单行为。请注意,它是滴答声,而不是毫秒。是的,我没有键入它,我尝试将速度设置为200,但仍有一些单击未显示表单,但有一段时间我想我会使用此解决方案,至少这满足了我的愿望,感谢您将此指向我。请查看您提到的问题中给出的解决方案仍然存在不足,因为如果用户单击速度超过指定的时间(在这种情况下为1000ms)然后表单将不会显示,我希望类似于开始菜单行为。请注意,它是滴答声,而不是毫秒。是的,我没有键入它,我尝试设置为200,但仍然有一些单击未显示表单,但有一段时间我想我会使用此解决方案,至少这满足了我的愿望一点,谢谢你将此指向我。这不是wo如果形式是可见的,形式将被隐藏并立即再次显示,我希望这是如此简单。这不起作用,如果形式是可见的,形式将被隐藏并立即再次显示,我希望这是如此简单。这不起作用,如果形式是可见的,形式将被隐藏并立即再次显示,我希望这是如此简单因为这不起作用,如果形式是可见的,形式将被隐藏并立即再次显示,我希望这是如此简单。