我有一个实例化并打开另一个表单的表单。直到最近才工作正常,同时重新设计第二种形式,表单上的单选按钮上的单击事件已在表单加载后开始触发。我在form.shown事件中有代码,但它永远不会被调用(窗体在单选按钮单击事件期间崩溃,因为它不应该这么快被调用)。调用堆栈窗口表明在RadioButton点击事件之前或之后也正在触发PictureBox点击事件。
表单加载:
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
答案 0 :(得分:1)
有时,表单控件将在表单初始化时触发。这可能听起来像一个bug,但微软称之为“按设计”。
检查并确保只加载表单的一个实例。如果从外部访问表单中的变量或控件,它将启动隐式表单加载。要检查这一点,只需在Load事件处理程序的开头设置一个断点。
您可以使用控件处理程序可以用来查看正在加载表单的标志(例如,初始化为true)。您可以在显示的事件中重置标记。