Код формы пуст, но проект компилируется и отображается графический интерфейс

У меня есть проект, в котором есть только одна форма — Form1.vb.

Когда я дважды щелкаю этот файл, чтобы изменить элементы управления с помощью панели инструментов, файл открывается, но он пуст.

Странно то, что когда я компилирую и запускаю проект, графический интерфейс, который я создал в этом файле (Form1.vb), отображается так, как он есть, но, как я уже сказал, файл пуст, поэтому я не могу редактировать графический интерфейс.

Как я могу это исправить?

Скриншот проблемы: Скриншот проблемы

Если нужно, скриншот папки проекта: Снимок экрана папки проекта


person Pablo De Luca    schedule 11.05.2016    source источник
comment
Вам придется использовать шестнадцатеричный просмотрщик, чтобы просмотреть содержимое файла Form1.vb. Доллары за пончики, весь ваш код заменен двоичными нулями. Это происходит, когда ваша машина зависает через несколько секунд после того, как вы сохранили файл. Вот почему программисты используют систему контроля версий. Не использовать? Вы усвоили важный урок, его всегда нужно усваивать с трудом.   -  person Hans Passant    schedule 11.05.2016
comment
@HansPassant: контроль версий - хорошая идея, но я не использую его в этом проекте. Я думаю, что проблема возникла из-за того, что я удалил класс Form1 из ClassDiagram.cd. Я думал, что он удаляет только ссылку на схему, но не код. Да, это правда, наконец, важные уроки нужно усвоить на горьком опыте. Спасибо за Ваш ответ.   -  person Pablo De Luca    schedule 11.05.2016


Ответы (3)


Ваш файл кода может быть пустым, но файл .Designer.vb нет (на скриншоте видно, что он 15 КБ).

Проблема здесь в том, что ваш проект, похоже, потерял "связь" между файлом конструктора и файлом кода и рассматривает Form1 как обычный класс.

Если у вас нет резервной копии файла кода, вы не сможете вернуть свой код, но вы все равно можете снова сделать форму редактируемой, выполнив следующие действия:

  1. (Этот шаг очень важен) Перейдите в папку проекта и скопируйте Form1.vb, Form1.Designer.vb и Form1.resx в другую папку.

  2. Теперь, когда у вас есть копия файлов, смело удаляйте Form1 из Visual Studio и удаляйте все оставшиеся файлы Form1 из каталога вашего проекта.

  3. В Visual Studio щелкните проект правой кнопкой мыши и перейдите к Add > Existing file.... Перейдите к папке, в которую вы скопировали файлы Form1 на шаге 1, и выберите все три.

  4. Нажмите «Открыть», и форма снова должна быть импортирована в ваш проект как редактируемая форма.


ИЗМЕНИТЬ:

Попробуйте открыть Form1.vb в блокноте и написать:

Public Class Form1

End Class

в нем, затем повторите шаги, описанные выше.

person Visual Vincent    schedule 11.05.2016
comment
Спасибо за ваш ответ, но я попробовал, и проблема не устранена. - person Pablo De Luca; 11.05.2016
comment
Я только что решил это. Ваш ответ привел меня к решению. Смотрите мой ответ, если хотите прочитать, что я сделал. Спасибо еще раз. - person Pablo De Luca; 11.05.2016
comment
@Пабло: я видел это. Я делал то же самое раньше, но обычно шаги, которые я написал, работают и являются более простым решением. Поверьте мне, я прошел через множество проблем с потерей данных. ;) - person Visual Vincent; 11.05.2016

Решено.

Я не могу получить код Form1.vb, но я создал новую форму и скопировал код Form1.Designer.vb (этот файл был в моей папке, и из-за этого графический интерфейс отображался, когда я компилировал и запускал проект) в файл конструктора форм новой формы. Для этого я открыл файл текстовым редактором.

Это позволило мне редактировать существующий графический интерфейс, сохраняя свойства элементов управления, которые я создал.

person Pablo De Luca    schedule 11.05.2016

Вот что я бы сделал в первую очередь: нажмите «Мой проект» в обозревателе решений и проверьте в разделе «Приложение», какая у вас форма запуска и тип приложения.

person minimalist    schedule 11.05.2016
comment
Почему это будет актуально? - person Visual Vincent; 11.05.2016
comment
Форма запуска: Form1. Тип приложения: приложения Windows Forms - person Pablo De Luca; 11.05.2016