首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Windows窗体控件单击事件在窗体显示事件之前被触发?

为什么Windows窗体控件单击事件在窗体显示事件之前被触发?
EN

Stack Overflow用户
提问于 2015-02-17 01:13:22
回答 1查看 848关注 0票数 3

我有一个表单,它实例化并打开另一个表单。直到最近,它还在正常工作,而重新使用第二种表单时,表单上的Radio上的click事件已经在表单加载后开始触发。我在form.shown事件中有代码,但它从未被调用(表单在单选按钮单击事件期间崩溃,因为它不应该这么快就被调用)。“调用堆栈”窗口表明,PictureBox单击事件也是在RadioButton单击事件之前或之后触发的。

形式负荷:

代码语言:javascript
复制
 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    lblCountdown.TextAlign = ContentAlignment.TopCenter
    lblCountdown.Font = New Font(lblCountdown.Font.Name, lblCountdown.Font.Size + 10, lblCountdown.Font.Style)

    radFirstRunContinue.Checked = False
    radFirstRunContinue.Visible = False

    For Each picBox As PictureBox In tlpButtonTableLayout.Controls
        AddHandler picBox.Click, AddressOf Me.PictureBox_click
    Next
End Sub
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-17 01:24:10

有时,窗体控件将在窗体初始化时触发。这听起来像是一个bug,但微软称它为“设计”。

  1. 检查并确保只加载表单的一个实例。如果从外部访问窗体中的变量或控件,它将启动隐式表单加载。要检查这一点,只需在Load事件处理程序的开头设置一个断点。
  2. 您可以使用控制处理程序可以用来查看正在加载的窗体的标志(例如,初始化为true )。您可以在窗体显示的事件中重置标志。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28553113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档