Не удалось вернуть окно просмотра конструктора с помощью форм Windows с помощью Visual Studio 2010
Я занимаюсь написанием приложения С# Windows Forms с использованием Visual Studio Express 2010 ENU SP1. Дальнейшие спецификации VS находятся в нижней части этой публикации. Недавно я сделал некоторые изменения, используя представление конструктора для макета, а затем решил, что я не хочу изменений, поэтому я закрыл окно дизайнера. Окно кода было закрыто, когда я закрыл проект, и изменения были сохранены в любом случае. Меня не волнуют изменения, потому что макет можно легко восстановить, за исключением того, что я не могу найти способ открыть окно визуального дизайнера. Чтобы получить окно назад, я попробовал следующее:
Сдвиг F7
Щелкните правой кнопкой мыши в окне кода дизайнера
Дважды щелкните файл конструктора в проводнике решений
Выберите файл дизайнера в проводнике решений и используйте контекстное меню, чтобы открыть файл
У меня есть оценочная копия команды VS 2010, и она показывает точно такое же поведение при использовании моего проекта
Я попробовал резервную копию проекта, но он отображает ту же проблему как в версиях Express, так и в Team
Я был на всем MSDN, форуме VS и в Интернете в целом и не нашел никаких решений
Когда я впервые запустил проект, я переименовал файл Form1.cs из проводника решений, потому что я хотел иметь другое имя, чем Form1 для приложения. При этом он спросил следующее:
"Вы переименовываете файл. Вы хотите выполнить переименование в этом проекте всех ссылок на элемент кода 'projectname'?
Я ответил да. Итак, теперь у меня нет файла Form1.cs, но файл с моим "projectname.cs" и файл-конструктор с именем "projectname.Design.cs". Это единственное изменение, которое я сделал, что могу думать о том, что может быть Я попытался переименовать его обратно в Form1.cs, но это также не решило проблему.
Я должен сказать, что я новичок в использовании Visual Studio. Пока мне это нравится совсем немного, но сейчас я мертв в воде, и, если я не смогу это решить, я потеряю две недели работы. Любая помощь будет принята с благодарностью.
Спасибо,
-Tom
Дополнительная информация:
Windows 7 Professional SP1 32 бит x86
Microsoft Visual Studio 2010
Версия 10.0.40219.1 SP1Rel
Microsoft.NET Framework
Версия 4.0.30319 SP1Rel
Установленная версия: С# Express
Microsoft Visual С# 2010 01014-169-2560017-70726
Microsoft Visual С# 2010
Microsoft Visual С# 2010 Express - ENU с пакетом обновления 1 (KB983509) KB983509
Этот пакет обновления предназначен для Microsoft Visual С# 2010 Express - ENU.
Если вы позже установите более новый пакет обновления, этот пакет обновления будет удален автоматически.
Ответы
Ответ 1
Я понимаю, что сейчас это довольно старая нить, но у меня было что-то подобное в одном из моих проектов в VS2010. Невозможно редактировать форму в конструкторе форм.
В конце концов он отыскал проблему в файле .csproj. Существует группа элементов, которая указывает, что компилируется. В теге группы элементов для моей формы он имел...
<Compile Include="AreaChart.cs" />
он нужен...
<Compile Include="AreaChart.cs">
<SubType>Form</SubType>
</Compile>
Тег SubType XML отсутствовал. Быстрое изменение файла проекта, и я мог бы снова редактировать форму.
Ответ 2
Еще один способ испортить конструктор форм - у меня было что-то вроде этого:
namespace MyProgram
{
public struct SomeStruct {
int a,b;
}
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
}
}
Оказывается, вы не можете поместить определение SomeStruct там, хотя все работает нормально и ошибок не было. Как только я переместил его, я снова смог увидеть конструктор.
Ответ 3
Опять же, это старый поток, но веб-интерес указывает на то, что у многочисленных людей по-прежнему возникает эта проблема, и она не была решена.
Я использую VS2012 и имею проблему, когда я скопировал библиотечный элемент управления, который порождает 3 формы в отдельную библиотеку для дальнейшей разработки. Все элементы управления в формах отображаются отлично при запуске, но дизайнер отображает пустую форму.
Проблема не была выше (это было неповрежденно), но благодаря этой подсказке я добавил новую форму и сравнил записи в файле .csproj. Для каждой из скопированных форм показывалась запись, похожая на следующую:
<Compile Include="MyForm.Designer.cs" />
Что нужно было:
<Compile Include="MyForm.Designer.cs">
<DependentUpon>MyForm.cs</DependentUpon>
</Compile>
Добавление этих вручную для каждой формы решения проблемы.
Ответ 4
Убедитесь, что у вас нет класса, объявленного перед вашим частичным классом дизайнера. Файл .cs должен иметь класс частичного конструктора в качестве первого класса в файле.
public partial class frmWidget : Form
{
}
public class SomeClass
{
}
Теперь SomeClass
не может быть в верхней части частичного класса frmWidget
. После того, как вы переустановите это, он автоматически исправит проблему дизайнера и не будет необходимости перезапускать VS или повторно создать форму. Надеюсь, это поможет.
Ответ 5
Пробовал все предложения, упомянутые в этом вопросе, ничего не работало для Visual Studio Community 2017
- no Shift-F7 shotcut
- элемент контекстного меню не отображается
- нет двойного щелчка по MainForm.cs
- неправильный порядок классов внутри MainForm.cs
- Неправильные записи в файле mysolutionname.csproj
Но это сработало для меня
- Щелкните правой кнопкой мыши свой
MainForm.cs
файл (или "Form.cs" в зависимости от того, как вы его назвали)
- "Исключить из проекта". Это временно удаляет MainForm.cs, MainForm.Designer.cs и MainForm.resx
- Используйте 'Добавить > Существующий элемент' и выберите
MainForm.cs
. Это приведет к повторному включению всех трех файлов.
Конечно, вы должны добавить их обратно в ту же папку, что были до
- Двойной щелчок по
MainForm.cs
и макет дизайна магии открываются
Ответ 6
У меня была та же проблема, но моя была вызвана на VS2012, перетащив некоторые формы в разные папки.
Решение David выше было полезно для его исправления, но не прошло полностью.
Если у вас есть форма в подпапке, строка Compile Include
должна выглядеть следующим образом:
<Compile Include="SubFolderName\MyForm.Designer.cs">
<DependentUpon>MyForm.cs</DependentUpon>
</Compile>
Обратите внимание, что имя подпапки необходимо в первой строке, но не во второй строке.
Мне также пришлось изменить строку EmbeddedResource дальше по файлу, чтобы связать файл resx:
<EmbeddedResource Include="SubFolderName\MyForm.resx">
<DependentUpon>MyForm.cs</DependentUpon>
</EmbeddedResource>
Снова отметим, что первая строка упоминает подпапку, а вторая - нет.
Ответ 7
Спасибо за мысли. Я просто полностью переустановил как экспресс, так и оценочные копии версий Team VS 2010, и теперь он волшебным образом работает. Я понятия не имею, что вызвало проблему, и то, что ее исправила, но теперь я снова на ходу. Вероятно, я должен был это сделать, прежде чем спрашивать на этом форуме.
Ответ 8
У меня была такая же проблема с VB. Спасибо за подсказки. Я нашел те же проблемы в .vbproj с моим UserControl.
У меня было это в файле .vbproj:
<Compile Include="AddCommunicationTask.vb" />
И изменил его на это:
<Compile Include="AddCommunicationTask.vb">
<SubType>UserControl</SubType>
</Compile>
Когда я перезагрузил его, у меня все еще возникали проблемы, и я понял, что я написал еще один класс выше класса формы, это вызвало ошибку. Класс формы должен быть первым. Все, что мне нужно было сделать, это перевести мой класс вниз и сделать класс формы верхним.
Надеюсь, это поможет другим - удачи!
p.s - Я использую vs Community 2015
Ответ 9
Я понимаю, что это действительно старый поток, но у меня была такая же проблема, и оказалось, что есть еще один node, который может сбиться с пути в файле csproj; у формы .resx есть EmbeddedResource node, а у моего отсутствует конструктор subnode. Это позволило мне снова увидеть код формы в среде IDE.
Ответ 10
У меня была аналогичная проблема, но не совсем то же самое.
Я скопировал форму из одного проекта в другой (используя проводник Windows), а затем добавил его в новый проект, щелкнув правой кнопкой мыши на проекте в VS и выбрав > Добавить > Существующий элемент.
Моя ошибка заключалась в том, чтобы добавить все три файла для формы (.cs,.designer.cs и .resx). Я должен был только добавить файл .cs.
Ответ 11
Хотя это довольно старый поток, я хочу поделиться своим делом и решением.
У меня была такая же проблема, но я использовал компонент Telerik WinForms для моего Form
. Я не мог видеть конструктора, пока не понял, что возможности RadControls для WinForms в режиме разработки реализованы в сборке Telerik.WinControls.UI.Design.dll
. Затем я добавляю ссылку, и теперь появляется дизайнер.
Ответ 12
У меня была такая же проблема, и я получил окно (Design), дважды щелкнув файл Form1.cs в обозревателе решений (а не в файле Form1.Designer.cs).
Ответ 13
Я случайно удалил свой файл Form1 [Design]. Двойной щелчок по файлу Form1.h ничего не сделал. Программа запустилась, и на кнопках TextBoxes и Labels были все, но Form1 [Design] не было видно для редактирования. Я исправил это в разделе: Заголовочные файлы выберите Form1.h и перейдите в свойства файла Form1.H. В раскрывающемся списке "Тип файла" измените его на "C++ Form". Я закрыл и перезапустил программу. Теперь вы сможете дважды щелкнуть Form1.h и увидеть свой Form1 [дизайн].
Ответ 14
У меня возникла та же проблема, так как я создал проект как приложение С# Windows Form (.NET Core), я решил создать его как приложение С# Windows Form (.NET Framework), и теперь я могу видеть и использовать конструктор. Обратите внимание на разницу между использованием "Core" и "Framework"
Я надеюсь, что это сэкономит некоторым из вас время и поможет вам.