【问题标题】:C# Form Load method not firing when IsHandleCreated = true当 IsHandleCreated = true 时,C# Form Load 方法不会触发
【发布时间】:2013-01-02 07:31:14
【问题描述】:

我有一个主表单,上面有一个按钮,点击后会打开一个新表单 (MyForm)。

 MyForm f = new MyForm();
 f.Method();
 f.Show();

如果我将MyForm 设置为局部变量,则MyForm_Load() 方法不会触发。但是,如果我做类似的事情

new MyForm.method();

MyForm_Load() 方法会触发(使用断点测试)。

我知道如果我为MyForm 创建一个变量,那么IsHandleCreated 属性为真,这会干扰MyForm_Load 被触发。有没有办法克服这个问题?

【问题讨论】:

  • IsHandleCreated 与您显示的代码有什么关系?我从未听说过对这个属性和 Load 事件有任何干扰...
  • 啊哈!谢谢,由于我的企业处理异常的方式,f.Method() 触发了一个在没有“公共语言运行时异常”复选框的情况下不可见的异常。

标签: c# winforms designer


【解决方案1】:
MyForm_Load()

在表单完全加载时引发,这意味着它也必须显示。只需调用

MyForm.Show();

展示它并引发事件

【讨论】:

  • 对不起,我正在调用 f.Show(),我只是忘记在我的问题中包含它,抱歉。
  • 什么是 f.Method();做?并且您是否添加了正确的事件处理程序添加到事件中?
  • f.Method 触发了一个异常,由于我的设置/我的企业处理异常的方式,我看不到该异常。还是谢谢。
【解决方案2】:

验证f.Method() 没有触发异常。

(最初是评论,因为您说这解决了问题,所以转为回答)。

【讨论】:

  • 对不起,我正在调用 f.Show(),我只是忘记在我的问题中包含它,抱歉。
猜你喜欢
  • 1970-01-01
  • 2021-02-16
  • 1970-01-01
  • 1970-01-01
  • 2011-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多