Подтвердить что ты не робот

Не удалось вернуть окно просмотра конструктора с помощью форм 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. Если вы позже установите более новый пакет обновления, этот пакет обновления будет удален автоматически.

4b9b3361

Ответ 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"

Я надеюсь, что это сэкономит некоторым из вас время и поможет вам.