Reputation: 823
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
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