是否可以在VB.NET WinForms项目的子命名空间中使用表单?

时间:2010-10-15 14:53:37

标签: vb.net winforms visual-studio-2010 namespaces

如果我在VB.NET中创建一个新的类库项目,我可以创建子文件夹(一个C#),将WinForm对象添加到这些子文件夹,然后指定命名空间:

Namespace Sub1.Sub2
    Public Class SomeForm
        Public Sub New()
            InitializeComponent()
        End Sub
    End Class
End Namespace

这解析为ProjectRootNamespace.Sub1.Sub2.SomeForm,这很好。

但是,如果我在VB.NET中创建一个新的WinForms项目并尝试同样的事情,我会在设计器中遇到这个错误:

The class SomeForm can be designed, but is not the first class in the file. Visual Studio requires that designers use the first class in the file. Move the class code so that it is the first class in the file and try loading the designer again.

有没有办法在VB.NET WinForms应用程序的子命名空间中而不是在根命名空间中使用表单?

1 个答案:

答案 0 :(得分:8)

您是否在Form.vb和Form.Designer.vb中重命名命名空间?你需要确保两个文件声明相同的对象。

示例Form.vb

Namespace X
    Namespace Y
        Public Class Form1

        End Class
    End Namespace
End Namespace

和'Form.Designer.vb`

Namespace X
    Namespace Y
        <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
        Partial Class Form1
            Inherits System.Windows.Forms.Form

            <System.Diagnostics.DebuggerStepThrough()> _
            Private Sub InitializeComponent()
                ...

        End Class
    End Namespace
End Namespace