我想发一个弹出通知。但是,我不想使用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
中的不知道哪个表格已经关闭了。
答案 0 :(得分:0)
我认为这应该可以解决您的错误:
private void frm2_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = true;
this.Hide();
}
您可以简单地隐藏它,而不是关闭表单,这样您就可以重新打开它。但是我强烈建议在你的情况下使用MessageBox - es