sreeyush sudhakaran Ответов: 2

Почему я получаю ошибку в конструкторе, когда добавляю класс чуть выше класса формы


Когда я добавил класс чуть выше класса формы Мой конструктор форм не загружает его показывая ошибку как показано ниже как в стеке вызовов

Скрыть Стек Вызовов

в системе.ComponentModel.Дизайн.Сериализация.CodeDomDesignerLoader.EnsureDocument(менеджер IDesignerSerializationManager)
в системе.ComponentModel.Дизайн.Сериализация.CodeDomDesignerLoader.PerformLoad(менеджер IDesignerSerializationManager)
в корпорации Microsoft.VisualStudio.Дизайн.Сериализация.CodeDom.VSCodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager serializationManager)
в системе.ComponentModel.Дизайн.Сериализация.BasicDesignerLoader.BeginLoad(IDesignerLoaderHost host)


Мой код выглядит так :

namespace WindowsFormsApplication1
{
 public class myclass
 {
    int mymember;
 }
 public partial class Form1 : Form
 {
    public Form1()
   {
            InitializeComponent();
    }
 }
}


где бы я ни комментировал myclass, я могу видеть дизайн windows forms. когда я раскомментирую это, он снова покажет ошибку при отображении дизайна.

Кто-нибудь знает, почему так происходит???

заранее спасибо.

Sergey Alexandrovich Kryukov

Вы хотите сказать, что если вы удалите 4 строки, определение myclass, приложение начнет работать и форма начнет отображаться в конструкторе?
Если это так, то я не вижу причины для проблемы в этом фрагменте кода. Я бы посоветовал вам одну вещь: не злоупотребляйте или злоупотребляйте дизайнером. Я стараюсь не минимизировать добавление какого-либо кода в этот файл. Это частичный класс, поэтому вы можете добавить свой код в другой файл...
—СА

sreeyush sudhakaran

это решение работает,я пробовал, но могу ли я знать, в чем причина этого?

DamithSL

похоже ошибка в Visual studio

sreeyush sudhakaran

хорошо..спасибо, я столкнулся с теми же сценариями , когда делал проект преобразования из vb6 в vb .net также в то время неподдерживаемые элементы управления делали ошибки, но здесь это выглядит странно, ничего просто класс, вызывающий проблемы.

Я надеюсь, что visual studio нуждается в чем-то подобном

"Класс Form1 может быть спроектирован, но это не первый класс в файле. Visual Studio требует, чтобы дизайнеры использовали первый класс в файле. Переместите код класса так, чтобы он был первым классом в файле, и попробуйте снова загрузить конструктор."

2 Ответов

Рейтинг:
2

SagarJaybhay1

Проблема заключается в том, что вы добавляете какой-то класс над классом form1 или каким-то другим именем вашей формы. чтобы устранить эту ошибку, вам нужно добавить классы, которые вы хотите добавить ниже класса формы.


CHill60

Ничем не отличается от решения 1

Рейтинг:
16

OriginalGriff

В VS 2013 при попытке сделать это появляется сообщение об ошибке:

The class frmInformation 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.
Есть хороший шанс, что Вы тоже получите это сообщение.

Это ограничение на то, как работает VS designer, вот и все. Встроите свой новый класс в Form1 или добавьте его в конец файла вместо начала (или лучше поместите его в свой собственный файл, чтобы его было легко найти)


sreeyush sudhakaran

Да.- Я это понял . :)

NimaRayan

У меня была такая проблема, и после прочтения этого решения она разрешилась!

Спасибо

OriginalGriff

Всегда пожалуйста!