我想在创建自定义控件时使用InitializeComponent()(确保在使用它之前初始化everthing),但是编译器说它没有声明。但我的Designer.vb包含一个子:
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
我创建的所有新实例。
为什么我不能称之为?
编辑这就是我调用InitizialeComponent的方式:
Public Class CustomControlsTextBox : Inherits TextBox
Public Sub New()
MyBase.New()
InitizialeComponent() 'this function is not declared
End Sub
End Class
答案 0 :(得分:2)
InitializeComponent()是私有的,只能从该类内部调用。它默认由usercontrol构造函数调用,如下所示:
Public Sub New()
' This call is required by the designer.
InitializeComponent()
' Add any initialization after the InitializeComponent() call.
End Sub
请注意,如果重载构造函数,则只需要自己调用InitializeComponent()。默认构造函数自己完成。
答案 1 :(得分:0)
您不应该依赖Designer.vb的InitializeComponent。而是在Form1
中创建一个新的构造函数,它将调用InitializeComponent()
例如:
Public Class Form1
Public Sub New()
' This call is required by the designer.
InitializeComponent()
' Add any initialization after the InitializeComponent() call.
'Type all your code here! This code will be executed before the "FormLoad" if you call your new form
End Sub
End Class
现在每当我们使用以下代码时:
Dim NewFrm1 As New Form1
将调用Form1中的New
构造函数。