简单的解决方法是声明初始化变量:
Private Initializing as boolean = True
Private Sub rb_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rbNuevos.CheckedChanged, RbDesaparecidos.CheckedChanged, RbModificados.CheckedChanged, RbNoDesap.CheckedChanged, RbDesHoy.CheckedChanged, RbChT.CheckedChanged
if Initializing then return
'Your Code
End Sub
Public Sub New()
' Llamada necesaria para el Diseñador de Windows Forms.
InitializeComponent()
' Agregue cualquier inicialización después de la llamada a InitializeComponent().
initializing = false
end sub
最复杂的:从方法中删除“手柄”,并在新的方法使用AddHandler
。
Public Sub New()
' Llamada necesaria para el Diseñador de Windows Forms.
InitializeComponent()
' Agregue cualquier inicialización después de la llamada a InitializeComponent().
AddHandler RbChT.CheckedChanged, AddressOf rb_CheckedChanged
end sub
来源
2010-06-30 15:57:49
x77
这是一个明确的Visual Studio错误,在我看来。设置一个初始化标志(如x77的答案)是最简单的解决方法,但它应该由编译器负责。 – xpda 2010-06-30 20:03:19
这是一个已知的* bug /特性*。当您使用VS中的内置升级工具将VB6项目升级到VB.NET时,它实际上会在这些事件中插入UPGRADE_WARNING注释。 (''UPGRADE_WARNING:事件TextBox1.TextChanged可能会在表单初始化时触发.') – awe 2010-07-28 07:44:00
对于后人,MSDN文章中有关如何处理@ awe的评论中引用的警告:https://msdn.microsoft.com/zh-cn/ us/library/26aab97z%28v = vs.71%29.aspx:set ** IsInitializing **“to ** true **在窗体的构造函数中,在** InitializeComponent **调用之前;将其设置为** false **紧接电话后。“ – 2016-01-13 00:34:10