Visual Studio C# - 窗口表单通知

时间:2017-08-01 08:10:30

标签: c# forms winforms visual-studio

我想发一个弹出通知。但是,我不想使用NuGet Tulpep通知。我想用Form建立一个。表单将仅显示来自服务器的最新数据,只使用一个表单而不是堆叠在一起的多个win-Form。

我现在面临的问题是,我创建了一个虚拟按钮(代表传入消息)以创建&显示表单2(因为它看起来像弹出消息)。

在我的popupnotificationbtn_Click:

  FormCollection fc = Application.OpenForms;
  Form2 frm2 = new Form2();

  if(fc.Count < 2){
     frm2.Show();
     frm2.Location = new Point(screenwidth - frm2.Width, screenheight - frm2.Height);
     frm2.form2label.Text = "There is (" + (fc.Count - 1).ToString() + ") new complaint(s)";
  }
 else{
     frm2.Location = new Point(screenwidth - frm2.Width, screenheight - frm2.Height);
     frm2.form2label.Text = "There is (" + (fc.Count - 1).ToString() + ") new complaint(s)";
  }

每次我点击弹出通知按钮时,表格2中的标签都不会更新为最新的整数(fc.Count -1)。

所以我决定把

Form2 frm2 = new Form2(), 

popupnotification_Click之外,效果很好。

然而,当我关闭Form2并再次重新打开时,它崩溃了。因为

frm2.Show() 
popupnotification_Click中的

不知道哪个表格已经关闭了。

1 个答案:

答案 0 :(得分:0)

我认为这应该可以解决您的错误:

private void frm2_FormClosing(object sender, FormClosingEventArgs e)
        {
            e.Cancel = true;
            this.Hide();
        }

您可以简单地隐藏它,而不是关闭表单,这样您就可以重新打开它。但是我强烈建议在你的情况下使用MessageBox - es