我正在为提醒编写一个小应用程序。为此,我从 Stack Overflow 上的一个类似问题和答案中得到了很大的帮助。我从这里使用了迅雷提到的代码。
相关代码为:
private void Form1_Load(object sender, EventArgs e)
{
System.Threading.TimerCallback callback = new System.Threading.TimerCallback(ProcessTimerEvent);
var dt = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day , 10, 0, 0);
if (DateTime.Now < dt)
{
var timer = new System.Threading.Timer(callback, null, dt - DateTime.Now, TimeSpan.FromHours(24));
this.Hide(); // This line works... Form hides itself
}
}
private void ProcessTimerEvent(object obj)
{
//MessageBox.Show("Hi Its Time");
this.Show(); //This line does not work. Form gets disposed off instead of show
}
我的问题:我得到了该答案中提到的所有内容(包括 MessageBox)。但是,如果我在进行回调时尝试隐藏表单并再次显示它而不是MessageBox.Show("Hi Its Time")
它不起作用。请参阅我对每一行的评论。我不明白为什么表格会被处理。
this.Visible() // does not work and disposed off the same way
还尝试通过更改其位置属性将表单移出屏幕。返回时,将其带回其原始位置,但这也不起作用。我可以做些什么来隐藏和显示退货表格?