簡單的解決方法是聲明初始化變量:
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