原文参见:https://www.cnblogs.com/zhlziliaoku/p/6706714.html

 

主窗口重现时需要重绘,所以闪烁。

所以简单点,把子窗口隐藏起来再关闭:

this.Hide();
this.Opacity = 0;            
this.Visible = false;            
this.Close();            
this.Dispose();

我这个方式就是偷懒了,各位有兴趣可以慢慢调

showdialog方式打开的窗口不用时记得dispose,不然这个窗口仅仅隐藏了,仍占用资源,显式Close它也仍然活着。