vb.net InitializeComponent() is not declared

MaBi picture MaBi · Aug 26, 2013 · Viewed 17.7k times · Source

I want to use InitializeComponent() when I create a custom control (to be sure everthing is initialized before I use it), but the compiler says it's not declared. But my Designer.vb contains a sub:

<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

with all new instances I created.

Why can't I call that?

edit this is how I call InitizialeComponent:

Public Class CustomControlsTextBox : Inherits TextBox
Public Sub New()
    MyBase.New()
    InitizialeComponent() 'this function is not declared
End Sub
End Class

Answer

MACN picture MACN · Aug 26, 2013

InitializeComponent() is private, and can only be called from inside that class. It is called by default by the usercontrol constructor, like this:

Public Sub New()

    ' This call is required by the designer.
    InitializeComponent()

    ' Add any initialization after the InitializeComponent() call.

End Sub

Note that you will only have to call InitializeComponent() yourself if you overload the constructor. Default constructor does it by itself.