walter
walter

Reputation: 823

Win32Exception - Class already exists

I am getting Win32Exception - "Class already exists" in production code. Same code works without a problem in my demo project. What can be a problem?

Private Class MyClientWindow
    Inherits NativeWindow

    Public Sub New(ByVal parent As Form)

        Dim cp As CreateParams = New CreateParams()

        ' Fill in the CreateParams details.
        cp.Caption = "Parent Static Window"
        cp.ClassName = "Static"

        ' Set the position on the form
        cp.X = 0
        cp.Y = 0
        cp.Height = 0
        cp.Width = 0

        ' Specify the form as the parent.
        cp.Parent = parent.Handle

        ' Create as a child of the specified parent
        cp.Style = WS_CHILD Or WS_VISIBLE

        ' Create the actual window 
        Me.CreateHandle(cp)
    End Sub

End Class

System.ComponentModel.Win32Exception was unhandled by user code. 
ErrorCode=-2147467259,     
Message=Class already exists, 
NativeErrorCode=1410, 
StackTrace:
at System.Windows.Forms.NativeWindow.WindowClass.RegisterClass()
at System.Windows.Forms.NativeWindow.WindowClass.Create(String className, Int32 classStyle)
at System.Windows.Forms.NativeWindow.CreateHandle(CreateParams cp)

Upvotes: 1

Views: 973

Answers (1)

walter
walter

Reputation: 823

Changing class name from "Static" to "STATIC" seams to work. I have found remarks on that in CreateParams.ClassName Property:

to derive from the standard Button control, set this ClassName property to "BUTTON"

Upvotes: 1

Related Questions