Кодът на формуляра е празен, но проектът се компилира и GUI се показва

Имам проект, който има само една форма, която е Form1.vb.

Когато щракна два пъти върху този файл, за да редактирам контролите с кутията с инструменти, файлът се отваря, но е празен.

Странното е, че когато компилирам и стартирам проекта, GUI, който бях създал в този файл (Form1.vb), се показва като това, което е там, но както казах, файлът е празен, така че не мога да редактирам GUI.

Как мога да го поправя?

Екранна снимка на проблема: Екранна снимка на проблема

Ако имате нужда, екранна снимка на папката на проекта: Екранна снимка на папката на проекта


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 KB).

Проблемът тук е, че вашият проект изглежда е загубил "връзката" между дизайнерския файл и кодовия файл и третира 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 в Notepad и напишете:

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
@Pablo : Видях го. Правил съм същото и преди, но обикновено стъпките, които написах, работят и са по-простото решение. Повярвайте ми, преминал съм през много проблеми със загуба на данни. ;) - person Visual Vincent; 11.05.2016

Решено.

Не мога да получа кода на Form1.vb, но създадох нов формуляр и копирах кода на Form1.Designer.vb (този файл беше в моята папка и поради него GUI беше показан, когато компилирам и стартирам проект) към файла на дизайнера на формуляр на новия формуляр. За да го направя, отворих файла с текстов редактор.

Това ми позволи да редактирам съществуващия GUI, запазвайки свойствата на контролите, които бях създал.

person Pablo De Luca    schedule 11.05.2016

Ето какво бих направил първо: Щракнете върху „Моят проект“ в Solution Explorer и проверете под Приложение какъв е вашият стартов формуляр и тип приложение.

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