1

我在生产代码中收到 Win32Exception - “类已存在”。相同的代码在我的演示项目中没有问题。有什么问题?

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)
4

1 回答 1

1

将班级名称从“静态”更改为“静态”接缝工作。我在CreateParams.ClassName Property中找到了相关说明:

要从标准 Button 控件派生,请将此 ClassName 属性设置为“BUTTON”

于 2012-11-21T02:59:43.687 回答