重复的控制名称导致“非成员”编译错误

时间:2015-05-05 05:46:07

标签: vb.net compiler-errors custom-controls

我创建了一个名为MultiTextbox的自定义控件。当我将控件放在表单上并尝试运行我的项目时,我收到以下错误:

'MultiTextBox' is not a member of 'MultiTextbox.MultiTextbox'.
Type 'MultiTextbox.MultiTextbox' is not defined.

在我的Form1.Designer代码中,我可以看到以下问题:

Me.MultiTextbox1 = New MultiTextbox.MultiTextbox()
Me.MultiTextbox1.ObjectAlignment = MultiTextbox.MultiTextbox.ObjectPlacement.Left
Me.MultiTextbox1.Style = MultiTextbox.MultiTextbox.TextboxStyle.Normal
Friend WithEvents MultiTextbox1 As MultiTextbox.MultiTextbox

我不明白为什么它会复制选定的几个项目的控件名称。

它所引用的属性是基于Enums的自定义属性。 例如:

       Public Enum ObjectPlacement
            Left
            Right
        End Enum

    Private m_ObjectAlignment As ObjectPlacement = ObjectPlacement.Left

'ObjectAlignment
<Browsable(True), Category("Appearance"), _
Description("The text to display as an input group header.")> _
Public Property ObjectAlignment As ObjectPlacement
    Get
        Return m_ObjectAlignment
    End Get
    Set(value As ObjectPlacement)
        If m_ObjectAlignment = value Then Return
        m_ObjectAlignment = value
        Me.Invalidate()
    End Set
End Property

更新

如果我将自定义控件放在表单上并运行,一切都会正常工作而不会出现错误,但只要我以任何方式修改控件(例如尺寸,样式等),它就会给我带来错误,我可以甚至运行应用程序,因为编译器只是在一个无限循环中说'建立......'。我必须强行退出VS。

1 个答案:

答案 0 :(得分:0)

好的,在这个帖子上有一些有用的帖子和google搜索之后,我发现通过从我的项目中删除Root Namespace,它删除了我所获得的关于重复命名空间的所有编译器错误(MultiTextbox.MultiTextbox):

Me.MultiTextbox1 = New MultiTextbox.MultiTextbox()
Me.MultiTextbox1.ObjectAlignment = MultiTextbox.MultiTextbox.ObjectPlacement.Left
Me.MultiTextbox1.Style = MultiTextbox.MultiTextbox.TextboxStyle.Normal
Friend WithEvents MultiTextbox1 As MultiTextbox.MultiTextbox

enter image description here

其次,我在尝试构建项目时遇到的锁定是由于我在绘制事件中设置按钮的可见状态导致我的控制无限刷新循环。