C# - Winform: 在窗体加载的过程中截获异常,如何不让窗体显示出来。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# - Winform: 在窗体加载的过程中截获异常,如何不让窗体显示出来。相关的知识,希望对你有一定的参考价值。

如题,窗体加载的过程中截获到异常,然后提示用户出错,但是之后窗体会正常显示,有没有什么办法能让窗体不继续显示。(除了把截获异常的代码段拿出来放到前一个窗体)
好吧,我二了,把Close()换个位置就可以了 - -

你可以这样试试:
用try窗体加载操作
catch()
代码关闭你的窗体
原理:检测你窗体加载的过程中是否异常,有的话捕捉且关闭这个窗体。
参考技术A try

throw new Exception("user ex");

catch (Exception ex)

MessageBox.Show(ex.Message);
this.Close();
参考技术B 这句MessageBox.Show注释掉。直接close或者hide,或者加载成功前设置可视属性为flase.

winform 窗体加载的问题,C#里不同Panel中窗体的调用

有3个窗体form1在panel1中,form2在panel2中,form3 在panel3中 (在panel2右边),其中form1的按钮控制 form2和form3的加载 ,form2中的按钮控制form3的加载
panel1,panel2和panel3同属主窗体了,现在是panel2中的按钮如何控制panel3中窗体的变化了
panel1中加载form2 和form3的代码
form2 frmSchedule = new form2();
frmSchedule.MdiParent = this;
panel2.Controls.Clear();
panel2.Controls.Add(frmSchedule);
frmSchedule.Dock = DockStyle.Fill;
frmSchedule.Show();
现在是 panel2 不知道怎么加载 panel3中的窗体,怎么找到父级的 panel1,折腾了1晚上实在搞不定啊,望哪位能帮帮小弟啊

参考技术A 通过在上级主窗口上暴露属性、Panel中通过主窗口的属性来访问。或在Panel中设置属性,由主窗口设置。 参考技术B 小弟 你问问题时能不能简单化一下 329399491本回答被提问者采纳

以上是关于C# - Winform: 在窗体加载的过程中截获异常,如何不让窗体显示出来。的主要内容,如果未能解决你的问题,请参考以下文章

winform 窗体加载的问题,C#里不同Panel中窗体的调用

winform 窗体加载的问题,C#里不同Panel中窗体的调用

在C#的winform中,如何快速加载窗体,避免控件的背景图片闪烁?

c# winform 窗口控件多,就会加载很慢???

C# Winform自定义控件加载到主窗体中之后,自定控件上面的空间 怎么和主窗体上其他控件交互?

C#winform怎样等所有控件加载完再显示窗体?C#透明窗体显示时闪现黑块怎么解决?