原文参见:https://www.cnblogs.com/zhlziliaoku/p/6706714.html
主窗口重现时需要重绘,所以闪烁。
所以简单点,把子窗口隐藏起来再关闭:
this.Hide();
this.Opacity = 0;
this.Visible = false;
this.Close();
this.Dispose();
我这个方式就是偷懒了,各位有兴趣可以慢慢调
showdialog方式打开的窗口不用时记得dispose,不然这个窗口仅仅隐藏了,仍占用资源,显式Close它也仍然活着。