c# - Windows 手机 : Application Exits after handling Exception from DialogForm

标签 c# winforms exception windows-mobile

我有以下简单场景:

一个带有 Button 的 DialogForm,Button_click 抛出异常。

带有按钮和标签的 MainForm,在单击时我在 Catch block 中显示 DialogForm 的新实例。

如果我在常规 WinForms 中运行此设置,我可以按预期捕获异常。

如果我在 WinMobile 中运行它(我已经在 WM5 和 WM6 Pro 上测试过),我可以使用调试器看到 Catch block 已输入 但异常继续向上传播 并且应用程序死掉了。

MainForm 中的代码如下所示:

try
{
   using (DialogForm frm = new DialogForm())
   {
     DialogResult r = frm.ShowDialog();
     label1.Text = r.ToString();
  }
}
catch (Exception ex)
{
  label1.Text = ex.Message;
}

编辑:

我进一步调查了一下,在这段代码和 Application.Run() 周围使用了一个 catch {} block ,应用程序仍然退出。

显然它不是失控的异常,它被捕获并处理得很好。但在此操作之后,应用程序似乎执行了不需要的 Exit()。

最佳答案

在修补之后我发现了一些有用的东西:

try {
  // show Dialog that Throws
}
catch (Exception ex) {
  label1.Text = ex.Message;
  Application.DoEvents();  // this solves it
}

赏金仍然开放给任何可以告诉我 为什么 DoEvents() 是必要的人。

关于c# - Windows 手机 : Application Exits after handling Exception from DialogForm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/724644/

相关文章:

c# - 对于 LINQ 中的循环...可能吗?

c# - ((System.Object)p == null)

c# - 等待动画、渲染完成 - XAML 和 C#

c# - ASP.NET 蓝屏死机 - 它从哪里获取堆栈跟踪?

python - 当 URL 存在时,与 Django 进行 NoReverseMatch

c# - 无法找到类型或命名空间比较(您是否缺少 using 指令或程序集引用?)

C# 如何给按钮添加圆角

vb.net - 显示两个 RichTextBox 控件之间的区别

winforms - ToolStripSplitButton 行为覆盖

java - 线程中出现异常 "AWT-EventQueue-0"java.lang.NullPointerException