无法创建用户控件,找不到构造函数

时间:2017-02-19 14:12:13

标签: vb.net

我有一个名为“Grid”的用户控件。我在设计器中的一行代码(与网格有关)遇到了一些问题,在我的表单中经常消失。然而,我只是从旧的备份中复制并粘贴它,它工作正常,因为它不是特别困扰我,我有更重要的事情要做我离开它。我刚刚尝试将网格放在工具箱中的表单上,我收到了这个错误:

enter image description here

任何人都可以帮助我吗?如果我遗漏了任何内容或者您需要更多信息,我应该快速回复。

编辑:我刚刚摆弄了一下,这是我所有用户控件常见的问题

干杯 - 马丁

编辑:认为将网格设计师包括在内可能很有用。

<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class Grid
Inherits System.Windows.Forms.UserControl

'UserControl overrides dispose to clean up the component list.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
    Try
        If disposing AndAlso components IsNot Nothing Then
            components.Dispose()
        End If
    Finally
        MyBase.Dispose(disposing)
    End Try
End Sub

'Required by the Windows Form Designer
Private components As System.ComponentModel.IContainer

'NOTE: The following procedure is required by the Windows Form Designer
'It can be modified using the Windows Form Designer.  
'Do not modify it using the code editor.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
    Me.SuspendLayout()
    '
    'Grid
    '
    Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
    Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
    Me.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch
    Me.Name = "Grid"
    Me.Size = New System.Drawing.Size(450, 450)
    Me.ResumeLayout(False)

End Sub

End Class

1 个答案:

答案 0 :(得分:0)

当您为控件编写自己的构造函数时,可能会发生这种情况。如果控件具有无参数构造函数,则设计者只能创建控件的实例。因此,如果您添加了带参数的自定义构造函数,那么设计人员就无法识别它。

要修复它,只需在控件中的任何位置添加一个没有参数的构造函数,你应该很高兴:

Public Sub New()
    InitializeComponent()
    'Do other stuff here if necessary.
End Sub