Возможно ли иметь формы в подпространствах имен проекта WinForms VB.NET? - PullRequest
3 голосов
/ 15 октября 2010

Если я создаю новый проект библиотеки классов в VB.NET, я могу создать подпапки (в стиле C #), добавить объекты WinForm в эти подпапки, а затем указать пространство имен:

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

Это разрешаеткак ProjectRootNamespace.Sub1.Sub2.SomeForm, что хорошо.

Однако, если я создаю новый проект WinForms в VB.NET и пытаюсь сделать то же самое, я получаю эту ошибку в конструкторе:

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.

Есть ли способ иметь формы в подпространствах имен приложения WinForms VB.NET вместо корневого пространства имен?

1 Ответ

8 голосов
/ 15 октября 2010

Переименовываете ли вы пространства имен как в 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
...