У меня есть проблема (очевидно, вопрос:)
У меня есть проект - MyProject ... следовательно, остальная часть проекта использует по умолчанию любые классы в качестве пространства имен "MyProject" ... нет проблем.
В моем проекте я создал пользовательский элемент управления, в котором есть много других элементов управления (метка, текстовые поля и т. Д.). Таким образом, этот класс также в пространстве имен по умолчанию «MyProject». Все компилируется без проблем. Просто чтобы подтвердить видимость области, на этом пользовательском элементе управления я убедился, что код DESIGNER и Code-Behind (My code) ОБА внутри одного и того же пространства имен «MyProject» (они есть), и они оба соответственно PUBLIC PARTIAL CLASS MyUserControl .
Теперь вопрос. Я создаю простую форму (также по умолчанию в пространстве имен «MyProject»). Из панели инструментов существует «MyUserControl», поэтому я перетаскиваю его на MyNewForm. Перетаскивание в порядке.
Сохранить все, скомпилировать, выполнить ошибку ... Дизайнер добавляет дополнительную ссылку «MyProject», создавая впечатление, что пользовательский элемент управления фактически находится в MyProject.MyProject.MyUserControl .. вместо MyProject.MyUserControl.
Как только я вручную удаляю лишний «MyProject.», Сохраняю и компилирую, все в порядке. Однако, если я заново отредактирую форму, что-то изменим, M $ вернет ее обратно к исходной ссылке «MyProject.MyUserControl».
Все, что говорится, вот отрывки из моего проекта ...
namespace MyProject
{
partial class MyNewForm
{
...
private void InitializeComponent()
{
// THIS is the line that has the extra "MyProject." reference
// when I manually remove it, all works perfectly
this.MyUserControl1 = new MyProject.MyUserControl();
}
}
private MyUserControl MyUserControl1;
}
Тогда в определении MyUserControl у меня есть ...
namespace MyProject
{
public partial class MyUserControl : UserControl
...
}
и из MyUserControl через конструктор ...
namespace MyProject
{
public partial class MyUserControl : UserControl
...
}
Спасибо за помощь ...