Не открывается конструктор форм visual studio 2019
Конструктор Windows Forms предоставляет множество средств для создания приложений Windows Forms. В этой статье показано, как создать приложение с помощью различных средств, предоставляемых конструктором, и выполнять такие задачи:
- размещать элементы управления с помощью линий привязки;
- выполнять задачи конструктора с помощью смарт-тегов;
- устанавливать поля и отбивки для элементов управления;
- располагать элементы управления с помощью элемента управления TableLayoutPanel;
- разделять макет элемента управления с помощью элемента управления SplitContainer;
- просматривать макет в окне "Структура документа";
- размещать элементы управления с отображением размера и сведений о расположении;
- задавать значения свойств в окне "Свойства".
В итоге вы создадите пользовательский элемент управления, используя разнообразные функции макета, которые доступны в конструкторе Windows Forms. Этот элемент управления реализует пользовательский интерфейс для простого калькулятора. На следующем изображении показан общий макет элемента управления калькулятора.
Создание проекта пользовательского элемента управления
Первым шагом является создание проекта элемента управления DemoCalculator.
Откройте Visual Studio и создайте проект категории Библиотека элементов управления Windows Forms. Задайте проекту имя DemoCalculatorLib.
Чтобы переименовать файл, в обозревателе решений щелкните правой кнопкой мыши элемент UserControl1.vb или UserControl1.cs, выберите Переименовать и замените имя файла на DemoCalculator.vb или DemoCalculator.cs. Чтобы переименовать все ссылки на элемент кода UserControl1, в соответствующем запросе выберите Да.
В конструктор Windows Forms отображается поверхность конструктора для элемента управления DemoCalculator. В этом представлении можно графически спроектировать внешний вид элемента управления, выбрав элементы управления и компоненты на панели элементов и поместив их на поверхности конструктора. Дополнительные сведения см. в статье о разновидностях пользовательских элементов управления.
Разработка макета элемента управления
Элемент управления DemoCalculator содержит несколько элементов управления Windows Forms. На этом этапе вы зададите расположение элементов управления с помощью конструктора Windows Forms.
В конструкторе Windows Forms увеличьте размер элемента управления DemoCalculator, выбрав маркер изменения размера в правом нижнем углу и перетащив его вниз и вправо. В правом нижнем углу Visual Studio просмотрите сведения о размере и расположении элементов управления. Задайте элементу управления ширину 500 и высоту 400, наблюдая за сведениями о размере при изменении размера элемента управления.
На панели элементов выберите узел Контейнеры, чтобы открыть его. Выберите элемент управления SplitContainer и перетащите его на поверхность конструктора.
Элемент SplitContainer появится на поверхности конструктора элемента управления DemoCalculator.
Размер элемента управления SplitContainer автоматически устанавливается в соответствии с размером элемента управления DemoCalculator. В окне Свойства проверьте свойства, заданные для элемента управления SplitContainer . Найдите свойство Dock. Ему задано значение DockStyle.Fill. Это означает, что размер элемента управления SplitContainer устанавливается в соответствии с границами элемента управления DemoCalculator. Измените размер элемента управления DemoCalculator, чтобы проверить это поведение.
В окне Свойства замените значение свойства Dock на None .
Элемент управления SplitContainer уменьшится до размера по умолчанию и больше не будет меняться при изменении размера элемента управления DemoCalculator.
Щелкните глиф смарт-тега () в правом верхнем углу элемента управления SplitContainer . Выберите Закрепить в родительском контейнере, чтобы присвоить свойству Dock значение Fill .
Элемент управления SplitContainer закрепится по границам элемента управления DemoCalculator.
Для некоторых элементов управления доступны смарт-теги, упрощающие проектирование. Дополнительные сведения см. в разделе Пошаговое руководство: выполнение типичных задач с помощью смарт-тегов в элементах управления Windows Forms.
Выберите вертикальную границу между панелями и перетащите ее вправо, так чтобы большую часть заняла левая панель.
SplitContainer разделяет элемент управления DemoCalculator на две панели с разделяющей их границей, которую можно перемещать. На левой панели будут находиться кнопки калькулятора и экран, а на правой будет отображаться запись арифметических операций, выполненных пользователем.
В окне Свойства замените значение свойства BorderStyle на Fixed3D .
На панели элементов выберите узел Стандартные элементы управления, чтобы открыть его. Выберите элемент управления ListView и перетащите его на правую панель элемента управления SplitContainer .
Выберите глиф смарт-тега элемента управления ListView . На панели смарт-тегов замените значение параметра View на Details .
На панели смарт-тегов выберите Изменить столбцы.
Откроется диалоговое окно Редактор коллекции ColumnHeader.
На панели смарт-тегов выберите Закрепить в родительском контейнере, а затем щелкните глиф смарт-тега, чтобы закрыть панель смарт-тегов.
С панели элементов узла Контейнеры перетащите элемент управления TableLayoutPanel на левую панель элемента управления SplitContainer .
Элемент управления TableLayoutPanel отобразится на поверхности конструктора с открытой панелью смарт-тегов. Элемент управления TableLayoutPanel упорядочивает свои дочерние элементы управления в сетке. Элемент управления TableLayoutPanel будет содержать экран и кнопки элемента управления DemoCalculator. Дополнительные сведения см. в разделе Пошаговое руководство: упорядочение элементов управления в формах Windows Forms с помощью элемента TableLayoutPanel.
На панели смарт-тегов выберите Правка строк и столбцов.
Откроется диалоговое окно Стили столбцов и строк.
Нажимайте кнопку Добавить, пока не добавятся пять столбцов. Выберите все пять столбцов, а затем в поле Тип размера выберите Процент. Параметру Процент задайте значение 20. При этом каждому столбцу задается одинаковая ширина.
В разделе Показать выберите Строки.
Нажимайте кнопку Добавить, пока не добавятся пять строк. Выберите все пять строк, а затем в поле Тип размера выберите Процент. Параметру Процент задайте значение 20. При этом каждой строке задается одинаковая высота.
В окне Свойства замените значение свойства Dock на Fill .
Заполнение элемента управления
Теперь, когда макет элемента управления настроен, можно добавить в элемент управления DemoCalculator кнопки и экран.
На панели элементов выберите значок элемента управления TextBox .
Элемент управления TextBox помещается в первую ячейку элемента управления TableLayoutPanel .
В окне Свойства замените значение свойства ColumnSpan элемента управления TextBox на 5.
Элемент управления TextBox переместится в центр своей строки.
Замените значение свойства Anchor элемента управления TextBox на Left , Right .
Элемент управления TextBox расширится по горизонтали, заняв все пять столбцов.
Измените значение свойства TextBox элемента управления TextAlign на Right .
В окне Свойства разверните узел свойства Font . Задайте значение 14 для Size и true для Bold у элемента управления TextBox .
Выберите элемент управления TableLayoutPanel .
На панели элементов выберите значок Button .
Элемент управления Button разместится в следующей свободной ячейке элемента управления TableLayoutPanel .
На панели элементов выберите Button еще четыре раза, чтобы заполнить вторую строку элемента управления TableLayoutPanel .
Выберите все пять элементов управления Button , удерживая нажатой клавишу SHIFT. Нажмите клавиши CTRL+C, чтобы скопировать элементы управления Button в буфер обмена.
Трижды нажмите сочетание клавиш CTRL+V, чтобы вставить скопированные элементы управления Button в оставшиеся строки элемента управления TableLayoutPanel .
Выберите все 20 элементов управления Button , удерживая нажатой клавишу SHIFT.
В окне Свойства замените значение свойства Dock на Fill .
Все элементы управления Button закрепятся в своих ячейках.
В окне Свойства разверните узел свойства Margin . Для All задайте значение 5.
Всем элементам управления Button задается меньший размер, чтобы увеличить поля между ними.
Выберите button10 и button20, после чего нажмите клавишу DELETE, чтобы удалить их из макета.
Выберите button5 и button15, после чего замените значение их свойства RowSpan на 2. Это будут кнопки очистки и = для элемента управления DemoCalculator.
Использование окна структуры документа
Если в элементе управления или форме присутствует несколько элементов управления, перемещаться по макету удобнее с помощью окна "Структура документа".
В строке меню выберите Вид > Другие окна > Структура документа.
В этом окне структура элемента управления DemoCalculator и его составных элементов управления представлена в виде дерева. Дочерние элементы управления контейнерных элементов управления, таких как SplitContainer , отображаются в виде подузлов дерева. Окно также позволяет переименовывать размещенные элементы управления.
В окне Структура документа щелкните правой кнопкой мыши элемент button1, чтобы выбрать его, после чего щелкните Переименовать. Замените его имя на sevenButton.
В окне Структура документа замените имена элементов управления Button , заданные конструктором, на имена для рабочей среды согласно следующему списку:
button1 на sevenButton;
button2 на eightButton;
button3 на nineButton;
button4 на divisionButton;
button5 на clearButton;
button6 на fourButton;
button7 на fiveButton;
button8 на sixButton;
button9 на multiplicationButton;
button11 на oneButton;
button12 на twoButton;
button13 на threeButton;
button14 на subtractionButton;
button15 на equalsButton;
button16 на zeroButton;
button17 на changeSignButton;
button18 на decimalButton;
button19 на additionButton;
С помощью окон Структура документа и Свойства измените значения свойства Text для каждого имени элемента управления Button согласно следующему списку:
для элемента управления sevenButton замените свойство текста на 7;
для элемента управления eightButton замените свойство текста на 8;
для элемента управления nineButton замените свойство текста на 9;
для элемента управления divisionButton замените свойство текста на / (косая черта);
для элемента управления clearButton замените свойство текста на Clear;
для элемента управления fourButton замените свойство текста на 4;
для элемента управления fiveButton замените свойство текста на 5;
для элемента управления sixButton замените свойство текста на 6;
для элемента управления multiplicationButton замените свойство текста на * (звездочка);
для элемента управления oneButton замените свойство текста на 1;
для элемента управления twoButton замените свойство текста на 2;
для элемента управления threeButton замените свойство текста на 3;
для элемента управления subtractionButton замените свойство текста на - (дефис);
для элемента управления equalsButton замените свойство текста на = (знак равенства);
для элемента управления zeroButton замените свойство текста на 0;
для элемента управления changeSignButton замените свойство текста на +/- ;
для элемента управления decimalButton замените свойство текста на . (точка);
для элемента управления additionButton замените свойство текста на + (знак "плюс");
На поверхности конструктора выберите все элементы управления Button , удерживая нажатой клавишу SHIFT.
В окне Свойства разверните узел свойства Font . Задайте значение 14 для Size и true для Bold у всех элементов управления Button .
На этом разработка элемента управления DemoCalculator завершена. Остается только добавить логику калькулятора.
Добавление обработчиков событий
Кнопки в элементе управления DemoCalculator имеют обработчики событий, которые можно использовать для реализации большей части логики калькулятора. Конструктор Windows Forms позволяет реализовать заглушки всех обработчиков событий для всех кнопок одним выбором.
На поверхности конструктора выберите все элементы управления Button , удерживая нажатой клавишу SHIFT.
Выберите один из элементов управления Button .
В редакторе кода откроются обработчики событий, созданные конструктором.
Тестирование элемента управления
Поскольку элемент управления DemoCalculator наследуется от класса UserControl, его поведение можно проверить с помощью Контейнера для тестирования пользовательских элементов управления. Дополнительные сведения см. в разделе Практическое руководство. Тестирование поведения элемента UserControl во время выполнения.
Нажмите клавишу F5, чтобы собрать и запустить элемент управления DemoCalculator в Контейнере для тестирования пользовательских элементов управления.
Выберите границу между панелями SplitContainer и перетащите ее влево и вправо. Размеры элемента TableLayoutPanel и всех его дочерних элементов управления будут изменяться в соответствии с доступным пространством.
Завершив тестирование элемента управления, нажмите кнопку Закрыть.
Использование элемента управления в форме
Элемент управления DemoCalculator можно использовать в других составных элементах управления или в форме. Ниже описано, как это сделать.
Создание проекта
Первым шагом является создание проекта приложения. В этом проекте выполняется сборка приложения, демонстрирующего работу пользовательского элемента управления.
Создайте проект Приложение Windows Forms с именем DemoCalculatorTest.
В Обозревателе решений щелкните правой кнопкой мыши проект DemoCalculatorTest и выберите Добавить > Ссылка на проект, чтобы открыть диалоговое окно Диспетчер ссылок.
(Если вы используете Visual Studio 2017, для открытия диалогового окна Диспетчер ссылок выберите Добавить > Ссылка.)
Перейдите на вкладку Проекты и выберите проект DemoCalculatorLib, чтобы добавить ссылку на тестовый проект.
В обозревателе решений щелкните правой кнопкой мыши DemoCalculatorTest и выберите пункт Назначить запускаемым проектом.
В конструкторе Windows Forms увеличьте размер формы примерно до 700 x 500.
Использование элемента управления в макете формы
Чтобы использовать элемент управления DemoCalculator в приложении, его необходимо поместить в форму.
На панели элементов разверните узел Компоненты DemoCalculatorLib.
Перетащите элемент управления DemoCalculator с панели элементов в форму. Переместите элемент управления в левый верхний угол формы. Когда элемент управления расположен близко к границам формы, отображаются линии привязки. Линии привязки указывают расстояние свойства Padding формы и свойства Margin элемента управления. Поместите элемент управления в расположение, указанное линиями привязки.
Перетащите элемент управления Button с панели элементов и поместите его в форму.
Перемещайте элемент управления Button по элементу управления DemoCalculator, чтобы определить, где отображаются линии привязки. С помощью этой функции можно точно и легко упорядочить элементы управления. По завершении удалите элемент управления Button .
Щелкните правой кнопкой мыши элемент управления DemoCalculator и выберите пункт Свойства.
Замените значение свойства Dock на Fill .
Выберите форму, а затем разверните узел свойства Padding . Замените значение Все на 20.
Размер элемента управления DemoCalculator уменьшится в соответствии с новым значением формы Padding .
Измените размер формы, перетаскивая различные маркеры изменения размера в разные положения. Обратите внимание на то, как размер элемента управления DemoCalculator пропорционально изменяется.
Следующие шаги
В этой статье было показано, как создать пользовательский интерфейс для простого калькулятора. В дальнейшем можно расширить его функциональность, реализовав логику калькулятора, а затем опубликовать приложение с помощью ClickOnce. Вы также можете ознакомиться с руководством по созданию средства просмотра рисунков с помощью Windows Forms.
This forum has migrated to Microsoft Q&A. Visit Microsoft Q&A to post new questions.
Asked by:
Question
Everything is in the title,
I've installed VS 2019 (community) and it fails to open the designer for some Forms (winform).
This is the error it shows :
I've made some investigations and it seems that all files of the project are open as "miscallaneous files".
The same project opened in VS 2017 is working fine.
This is what I get from "Project System Tools" plugin, when opening the designer for one form :
Can you help me ?
I could not manage to create a sample to reproduce the issue. the projects that fails have numerous referenced projects.
Also, I forgot to mention that I already tried several operations : clean .vs/bin/obj folders, rebuild everything, remove/re-add the files.
All replies
Sorry for delay in reply.
Did you install some extensions for your project? If not, please unload the project in solution explorer, then reload your project.
Note: right click the project / unload Project/ reload Project
If the issue persists, please edit XXX.csproj file when unload project, check whether the section is form.
Note: right click the project / unload Project/ edit XXX.csproj file
Any feedback will be expected.
Thank you for taking time to find a solution for the issue.
Answers to your questions :
- Did you install some extensions for your project ?
Nope - Unload/Reload the project ?
Already tried that, still not working - The form that cannot be designed, in the vbproj :
- It works (the form can be designed) on VS 2017 community but not in VS 2019 community
- I have the last version of VS 2017 community and 2019 community
- This is not workstation-dependent - I have the same issue on all computers I could test on
Thank you for reply.
According to your description, it seems that it is not compatible with VS2019. Did you have some third extensions or plugins which could not be used in the VS2019? Or did the project need specified options and environment? Please run the VS as safe mode to open your project.
Note: open RUN window / type "devenv /safemode"
To your first question, about any plugin not compatible with VS 2019, I don't know yet. I'm checking.
Running VS2019 in safemode bring multiple issue during the project loading "The visual studio build manager package package did not load correctly. The problem may be caused by a configuration change or by the installation of another extension. You can get more information . activitylog.xml"
And this is the activityLog.xml which seems to log somee exceptions during the loading process: ufile.io / jstv1ode
This is an entry in this file :
It seems to be the root cause of the issue ?
Edit: Actually there are quite a lot of exceptions thrown in activitylog.xml, I don't know which one is relevant.
NB: Also, in safemode, I cannot build. It says there is an error, but no error is shown.
Thank you for feedback.
Based on your description, It seems that there are some extensions which could not run in the visual studio 2019. Please have a try to uninstall them, then check if the winform could be recognized by VS IDE.
Look forward to your reply.
Sorry for delay in reply.
I was looking forward any extension in our solutions that could not be loaded in VS 2019.
Unfortunately, there are no extensions incompatible with VS 2019.
BUT I managed to reproduce the issue with a simple project. You can get the project here : we.tl / t-8KqKKAtNUK
(remove spaces to get a valid link)
I took the project that fails, remove all the files, and just add a single form.
Build it and try to open Form1 in the designer with VS 2019, it should not works.
If you try to open it with VS 2017, it will works.
Let me know if you have the same issue as me and if you have any idea what is wrong with the project itself.
I found the issue.
If you define constants (Project > Compile > Advanced Compile Options . > Custom constants), which concatenated, have more than 190 characters, then the project is not correctly loaded, and thus project files are interpreted as Miscallaneous.
You can easily reproduce the regression yourself. Create a Winform (VB) project, and add the following Constant :
NB: This constant has a length of 191 characters.
NB2: You are allowed to add this constant via UI. There is no error shown when entering the constant.
Open the existing form in the designer, and you'll see that the designer cannot load the form.
Now, remove only one character from the previous constant, save, reload and you'll see that the designer can finaly load the form.
Now, what should I do ? Is there any bug tracking platform, or something like that to share the regression ?
Because it works on VS 2017.
This forum has migrated to Microsoft Q&A. Visit Microsoft Q&A to post new questions.
Asked by:
Question
All replies
Microsoft removed the templates to create Windows Forms applications using VC++ a long time ago. However, there are several threads in the forums about how to manually create a Wndows Form project using VC++. One of them is at Create C++ Windows Forms application in Visual Studio 2017
However, there are several threads in the forums about how to manually create a Wndows Form project using VC++. One of them is at Create C++ Windows Forms application in Visual Studio 2017
The thing is, Visual C++ has never really had a native form designer. It does have the resource designer for dialog box templates but nothing more.
The resource designer exists in Visual Studio 2019, but there has never been any automation in the resource designer. So you would have to write everything manually.
This is a signature. Any samples given are not meant to have error checking or show best practices. They are meant to just illustrate a point. I may also give inefficient code or introduce some problems to discourage copy/paste coding. This is because the major point of my posts is to aid in the learning process.
Sam Hobbs
SimpleSamples.Info
Welcome to the MSDN forum.
Visual Studio 2017 and earlier version support creating C++ Windows Forms application. But it actually can not create a C++ Windows Forms application in Visual Studio 2019 for now. If you still want this module in Visual Studio 2019, you can choose menu Help->Send Feedback->Report a Problem to reflect your issue.
l hope it could help you.
Visual Studio 2017 and earlier version support creating C++ Windows Forms application.
Sam Hobbs
SimpleSamples.Info
Sam Hobbs
SimpleSamples.Info
So if you are going to go by what is popular, wouldn't you be using Java or C?
Also, as an interesting side note:
This is a signature. Any samples given are not meant to have error checking or show best practices. They are meant to just illustrate a point. I may also give inefficient code or introduce some problems to discourage copy/paste coding. This is because the major point of my posts is to aid in the learning process.
Если конструктор Windows Forms не загружается из-за ошибки в коде, в стороннем компоненте или где-то еще, вместо конструктора появится страница ошибок. Эта страница ошибок не обязательно означает ошибку в конструкторе. Ошибка может находиться где-то на странице с выделенным кодом с именем .Designer.cs. Ошибки отображаются в свертываемых желтых строках со ссылкой для перехода к расположению ошибки на кодовой странице.
Вы можете игнорировать ошибки и продолжить загрузку конструктора, нажав кнопку Пропустить и продолжить. Это действие может привести к непредвиденному поведению, например, элементы управления могут не отображаться в области конструктора.
Экземпляры ошибки
При развертывании желтой строки ошибок отображается каждый экземпляр ошибки. Многие типы ошибок содержат точное местоположение в следующем формате: [имя_проекта][имя формы] строка:[номер строки] столбец:[номер столбца]. Если с ошибкой связан стек вызовов, можно щелкнуть ссылку Показать стек вызовов. Изучение стека вызовов может помочь устранить ошибку.
- Для приложений Visual Basic на странице ошибок во время разработки отображается только одна ошибка, но может отображаться несколько экземпляров одной и той же ошибки.
- Для приложений C++ ошибки не содержат ссылок на расположение кода.
Справка по ошибке
Ошибки времени разработки
В этом разделе перечислены потенциальные ошибки.
не является допустимым идентификатором
Эта ошибка указывает, что поле, метод, событие или объект имеют неправильное имя.
уже существует вотсутствует на панели элементов
Сторонний конструктор пытался получить доступ к вкладке на панели элементов, которая не существует. Обратитесь к поставщику компонентов.
Синтаксический анализатор запрошенного языка не установлен
Отсутствует служба, которая требуется для генерирования и анализа исходного кода
Это проблема со сторонним компонентом. Обратитесь к поставщику компонентов.
Произошло исключение при попытке создать экземплярСторонний конструктор запросил у Visual Studio создание объекта, но объект вызвал ошибку. Обратитесь к поставщику компонентов.
Документ открыт в несовместимом режиме в другом редакторе
Изменения в документ уже внесены в другом редакторе
Закройте и снова откройте конструктор, чтобы изменения вступили в силу. Как правило, Visual Studio автоматически перезагружает конструктор после внесения изменений. Однако другие конструкторы, такие как сторонние конструкторы компонентов, могут не поддерживать поведение перезагрузки. В этом случае Visual Studio предлагает закрыть и повторно открыть конструктор вручную.
Файл открыт в несовместимом режиме в другом редакторе
Слишком высокий ранг массиваVisual Studio поддерживает только одномерные массивы в блоке кода, анализируемом конструктором. Многомерные массивы допустимы за пределами этой области.
Не удалось открыть сборку Неправильный тип элемента. Этот сериализатор ожидает элемент типаЭто проблема со сторонним компонентом. Обратитесь к поставщику компонентов.
Не удается получить доступ к панели элементов Visual Studio
Visual Studio сделала вызов к панели элементов, которая была недоступна. Если вы видите эту ошибку, зарегистрируйте ее с помощью функции Сообщить о проблеме.
Не удается привязать обработчик событий к событию , так как событие доступно только для чтения
Эта ошибка чаще всего возникает при попытке подключить событие к элементу управления, наследуемому от базового класса. Если переменная, входящая в элемент управления, является закрытой, Visual Studio не удается подключить событие к методу. К наследуемым в частном порядке элементам управления невозможно привязывать дополнительные события.
Не удается создать имя метода для указанного компонента, так как он не является членом контейнера конструктора
Visual Studio попыталась добавить обработчик событий в компонент, не имеющий переменной-члена в конструкторе. Обратитесь к поставщику компонентов.
Не удается присвоить объекту имя , поскольку у него уже есть имяЭто внутренняя ошибка в сериализаторе Visual Studio. Она указывает, что сериализатор дважды пытался назвать объект, что не поддерживается. Если вы видите эту ошибку, зарегистрируйте ее с помощью функции Сообщить о проблеме.
Не удается удалить или уничтожить унаследованный компонентНаследуемые элементы управления находятся под контролем наследующего класса. Изменения в наследуемом элементе управления должны быть внесены в класс, из которого создается элемент управления. Таким образом, нельзя переименовать или уничтожить его.
В категории нет инструмента для классаКонструктор пытался ссылаться на класс на определенной вкладке панели элементов, но класс не существует. Обратитесь к поставщику компонентов.
Для класса отсутствует соответствующий конструктор
Сторонний конструктор запросил Visual Studio создать объект с определенными параметрами в конструкторе, который не существует. Обратитесь к поставщику компонентов.
Не удалось создать код для свойстваКомпонент не вызвал метод Container.Add() в своем конструкторе
Это ошибка в компоненте, который вы только что загрузили или поместили в форму. Она указывает, что компонент не добавил себя в контейнерный элемент управления (будь то другой элемент управления или форма). Конструктор продолжит работу, но во время выполнения могут возникнуть проблемы с компонентом.
Имя компонента не может быть пустым
Эта ошибка возникает при попытке переименовать компонент в пустое значение.
Не удалось получить доступ к переменной , так как она еще не инициализирована
Эта ошибка может возникнуть из-за двух сценариев. У стороннего поставщика компонентов возникла проблема с элементом управления или компонентом, которые они распространили, или написанный вами код имеет рекурсивные зависимости между компонентами.
Не удалось найти тип Не удалось загрузить типНе удалось найти шаблоны элементов проекта для унаследованных компонентов
Шаблоны для унаследованных форм в Visual Studio недоступны. Если вы видите эту ошибку, зарегистрируйте ее с помощью функции Сообщить о проблеме.
Делегат класса не имеет метод вызова. Является ли этот класс делегатом
Visual Studio попыталась создать обработчик событий, но с типом события возникла ошибка. Это может произойти, если событие было создано языком, не соответствующим CLS. Обратитесь к поставщику компонентов.
Повторное объявление членаЭта ошибка возникает из-за того, что переменная-член была объявлена дважды (например, два элемента управления Button1 объявляются в коде). Имена должны быть уникальными в унаследованных формах. Кроме того, имена не могут различаться только регистром.
Ошибка чтения ресурсов из файла ресурсов для языка и региональных параметровЭта ошибка может возникнуть, если в проекте имеется неправильный RESX-файл.
Ошибка чтения ресурсов из файла ресурсов для языка и региональных параметров по умолчаниюЭта ошибка может возникнуть, если в проекте имеется неправильный RESX-файл для языка и региональных параметров по умолчанию.
Не удалось проанализировать метод Недопустимое имя компонента:Тип класса образуется несколькими разделяемыми классами из того же файла
При определении класса в нескольких файлах с помощью ключевого слова partial в каждом файле может быть только одно частичное определение.
Чтобы устранить эту ошибку, удалите все, кроме одного частичного определения класса из файла.
Не удалось найти сборкуНедопустимое имя сборки .
Компонент запросил определенную сборку, но имя, предоставленное компонентом, не является допустимым именем сборки. Обратитесь к поставщику компонентов.
Не удается создать базовый классVisual Studio загрузила класс, но этот класс не может быть создан, так как средство реализации класса не предоставило конструктор. Если класс поддерживает конструктор, убедитесь, что у вас нет проблем, вызывающих ошибки с отображением в конструкторе, например ошибки компилятора. Кроме того, убедитесь, что все ссылки на класс правильные, все имена классов написаны без ошибок. В противном случае, если класс недоступен для создания, измените его в представлении кода.
Не удалось загрузить базовый классНевозможно создать класс в этой версии Visual Studio
Конструктор для этого элемента управления или компонента не поддерживает те же типы, что и Visual Studio. Обратитесь к поставщику компонентов.
Имя класса в этом языке является недопустимым идентификатором
Не удается добавить компонент, так как он содержит циклическую ссылку наНельзя добавить элемент управления или компонент в него же. Другая ситуация, когда это может произойти: в методе InitializeComponent формы (например, Form1) есть код, который создает другой экземпляр Form1.
Невозможно изменить конструктор
Эта ошибка возникает, когда файл в редакторе помечается как доступный только для чтения. Убедитесь, что файл не помечен только для чтения и приложение не запущено.
Для данного файла не удалось отобразить конструктор, так как в нем отсутствуют классы для разработки
Эта ошибка возникает, когда Visual Studio не удается найти базовый класс, удовлетворяющий требованиям конструктора. Формы и элементы управления должны быть производными от базового класса, поддерживающего конструкторы. Если вы создаете производный элемент из унаследованной формы или элемента управления, убедитесь, что проект создан.
Не установлен конструктор базового классаVisual Studio не удалось загрузить конструктор для класса. Если вы видите эту ошибку, зарегистрируйте ее с помощью функции Сообщить о проблеме.
Конструктор должен создать экземпляр типа , однако сделать это не удалось, поскольку тип объявлен абстрактным
Эта ошибка произошла из-за того, что базовый класс объекта, передаваемого конструктору, является абстрактным, а это запрещено.
Не удалось загрузить файл в конструктор
Базовый класс этого файла не поддерживает конструкторы. В качестве обходного решения используйте представление кода для работы с файлом. Щелкните правой кнопкой мыши файл в обозревателе решений и выберите пункт Просмотр кода.
Язык этого файла не поддерживает службы, необходимые для создания и разбора кода
Эта ошибка, скорее всего, возникла из-за открытия файла, который находится в проекте, не поддерживающем конструкторы.
Класс синтаксического анализатора языка не реализован должным образом.
Используемый язык зарегистрировал класс конструктора, который не является производным от правильного базового класса. Обратитесь к поставщику используемого языка.
Имя уже используется другим объектом
Это внутренняя ошибка в сериализаторе Visual Studio. Если вы видите эту ошибку, зарегистрируйте ее с помощью функции Сообщить о проблеме.
В объекте не реализован интерфейс IComponent
Visual Studio попыталась создать компонент, но созданный объект не реализует интерфейс IComponent. Обратитесь к поставщику компонентов за исправлением.
Объект вернул пустое значение для свойства , что недопустимо
Объект данных сериализации имеет неверный тип
Объект данных, предлагаемый сериализатором, не является экземпляром типа, соответствующего используемому текущему сериализатору. Обратитесь к поставщику компонентов.
Не удается определить расположение требуемой службыСлужба, необходимая Visual Studio, недоступна. Если вы пытались загрузить проект, который не поддерживает этот конструктор, используйте редактор кода для внесения необходимых изменений. В противном случае, если вы видите эту ошибку, зарегистрируйте ее с помощью функции Сообщить о проблеме.
Экземпляр службы должен быть производным от интерфейса или содержать его реализацию
Эта ошибка указывает, что компонент или конструктор компонентов вызвал метод AddService, для которого требуется интерфейс и объект, но указанный объект не реализует указанный интерфейс. Обратитесь к поставщику компонентов.
Не удалось изменить текст в окне кода
Эта ошибка возникает, если Visual Studio не удается изменить файл из-за проблем с местом на диске или памятью, или файл помечен только для чтения.
Объект перечислителя панели элементов поддерживает одновременное извлечение только одного элемента
Если вы видите эту ошибку, зарегистрируйте ее с помощью функции Сообщить о проблеме.
Из панели элементов не удалось загрузить элемент для компонентаУказанный компонент вызвал исключение при доступе к нему Visual Studio. Обратитесь к поставщику компонентов.
Из панели элементов не удалось загрузить элемент для элемента панели элементовЭта ошибка возникает, если данные в элементе панели элементов повреждены или версия компонента изменилась. Попробуйте удалить элемент из панели элементов и добавить его снова.
Не удалось найти тип .
При загрузке конструктора Visual Studio не удалось найти тип. Убедитесь, что имеется ссылка на сборку, содержащую тип. Если сборка является частью текущего проекта разработки, убедитесь, что проект создан.
Служба разрешения типов может быть вызвана только из потока основного приложения
Переменная либо не объявлена, либо никогда не присваивалась
Для команды меню уже существует обработчик команд
Эта ошибка возникает, если сторонний конструктор добавляет команду, которая уже имеет обработчик в таблице команд. Обратитесь к поставщику компонентов.
Компонент с именем уже существует
Сторонний компонент выполнил обратный вызов к элементу на вкладке панели элементов, но элемент уже содержал обратный вызов. Обратитесь к поставщику компонентов.
Языковые средства для данного языка не поддерживаю CodeModel, с помощью которой загружается конструктор
Тип не имеет конструктора с параметрами типовVisual Studio не удалось найти конструктор с соответствующими параметрами. Это может быть результатом предоставления конструктора с типами, отличными от требуемых. Например, конструктор Point может принимать два целых числа. Если вы указали число с плавающей запятой, возникает эта ошибка.
Не удается добавить ссылку в текущее приложение
Не удалось извлечь текущий файл
Эта ошибка возникает при изменении файла, который в настоящее время записывается в систему управления исходным кодом. Как правило, Visual Studio представляет диалоговое окно возврата файла, чтобы пользователь мог извлечь файл. На этот раз файл не был извлечен, возможно, из-за конфликта слияния во время возврата. Чтобы устранить эту ошибку, убедитесь, что файл не заблокирован, а затем попробуйте извлечь файл вручную.
Не удается найти страницу с именемЭта ошибка возникает, когда конструктор компонентов запрашивает доступ к странице из диалогового окна "Параметры", используя имя, которое не существует. Обратитесь к поставщику компонентов.
Не удается найти свойство на страницеЭта ошибка возникает, когда конструктор компонентов запрашивает доступ к определенному значению на странице из диалогового окна "Параметры", используя значение, которое не существует. Обратитесь к поставщику компонентов.
В Visual Studio не удается открыть конструктор файла, так как класс этого файла не унаследован от класса, поддерживающего визуальную разработку
В Visual Studio не удается сохранить или загрузить экземпляры типаЭто проблема со сторонним компонентом. Обратитесь к поставщику компонентов.
Документ не удалось открыть в Visual Studio в представлении конструктора
Эта ошибка указывает, что язык проекта не поддерживает конструктор и возникает при попытке открыть файл в диалоговом окне "Открыть файл" или из Обозревателя решений. Вместо этого измените файл в представлении кода.
В Visual Studio не удалось найти конструктор для классов типаVisual Studio загрузила класс, но класс невозможно создать. Вместо этого измените класс в представлении кода, щелкнув класс правой кнопкой мыши и выбрав Просмотреть код.
Из этого краткого руководства вы узнаете, как создать новое приложение Windows Forms с помощью Visual Studio. После создания первоначального приложения вы научитесь добавлять элементы управления и обрабатывать события. По завершении работы с этим руководством у вас будет простое приложение, добавляющее имена в список.
В этом руководстве описано следующее:
- Создание приложения Windows Forms
- Добавление элементов управления на форму
- Обработка событий элемента управления для предоставления функциональных возможностей приложения
- Запустите приложение
Предварительные требования
Создание приложения Windows Forms
Первым шагом в создании нового приложения является запуск Visual Studio и создание приложения на основе шаблона.
Запустите Visual Studio.
Выберите Создать новый проект.
В поле Поиск шаблонов введите winforms и нажмите клавишу ВВОД .
В окне Настроить новый проект задайте в качестве имени проекта значение Names и щелкните Создать.
Вы также можете сохранить проект в другую папку, изменив параметр Расположение.
Запустите Visual Studio.
Выберите Создать новый проект.
В поле Поиск шаблонов введите winforms и дождитесь появления результатов поиска.
В списке шаблонов выберите Приложение Windows Forms и щелкните Далее.
В окне Настроить новый проект задайте в поле Имя проекта значение Names и щелкните Создать.
Вы также можете сохранить проект в другую папку, изменив путь в поле Расположение.
После создания приложения Visual Studio должен открыть панель конструктора для формы по умолчанию Form1. Если конструктор форм не отображается, дважды щелкните форму в области Обозреватель решений, чтобы открыть окно конструктора.
Важные элементы среды Visual Studio
Поддержка Windows Forms в Visual Studio состоит из четырех важных компонентов, с которыми вы будете взаимодействовать при создании приложения.
Все файлы проекта, код, формы и ресурсы отображаются в этой области.
На этой панели отображаются параметры свойств, которые можно настроить в зависимости от выбранного элемента. Например, если выбрать элемент в Обозревателе решений, отобразятся параметры свойств, связанные с файлом. Если выбрать объект в конструкторе, отобразятся параметры элемента управления или формы.
Это конструктор для формы. Он является интерактивным, и на него можно перетаскивать объекты из панели элементов. Выбирая и перемещая элементы в конструкторе, можно визуально создавать пользовательский интерфейс для приложения.
Панель элементов содержит все элементы управления, которые можно добавить на форму. Чтобы добавить элемент управления на текущую форму, дважды щелкните элемент управления или перетащите его.
Добавление элементов управления на форму
Открыв конструктор форм Form1, используйте панель Область элементов, чтобы добавить на форму следующие элементы управления:
- Метка
- Кнопка
- Listbox
- Текстовое поле
Вы можете расположить и изменить размер элементов управления в соответствии со следующими настройками. Либо визуально перенесите их, чтобы они соответствовали следующему снимку экрана, либо щелкните каждый элемент управления и настройте параметры в области Свойства. Можно также щелкнуть область заголовка формы, чтобы выбрать форму.
Объект | Параметр | Значение |
---|---|---|
Form | Текст | Names |
Размер | 268, 180 | |
Label | Расположение | 12, 9 |
Текст | Names | |
Listbox | Имя | lstNames |
Расположение | 12, 27 | |
Размер | 120, 94 | |
текстовое поле; | Имя | txtName |
Расположение | 138, 26 | |
Размер | 100, 23 | |
Button | Имя | btnAdd |
Расположение | 138, 55 | |
Размер | 100, 23 | |
Текст | Add Name |
Вы должны получить в конструкторе форму, которая выглядит следующим образом.
Обработка событий
Теперь, когда в форме есть все элементы управления, необходимо обрабатывать события элементов управления, чтобы реагировать на вводимые пользователем данные. Открыв конструктор форм, выполните следующие действия.
Выберите в форме элемент управления "Кнопка".
В области Свойства щелкните значок события , чтобы вывести список событий кнопки.
Найдите событие Click и дважды щелкните его, чтобы создать обработчик событий.
Это действие добавляет следующий код в форму:
Код, помещаемый в этот обработчик, будет добавлять имя, заданное элементом управления TextBox txtName , в элемент управления ListBox lstNames . Однако мы хотим, чтобы имя удовлетворяло двум условиям: указанное имя не должно быть пустым, и его еще не должно быть в списке.
В следующем примере кода показано добавление имени в элемент управления lstNames .
Запустите приложение
Теперь, когда у нас есть код события, можно запустить приложение, нажав клавишу F5 или выбрав пункт меню Отладка>Начать отладку. Отобразится форма, и вы можете ввести имя в текстовое поле, а затем добавить его, нажав кнопку.
Читайте также: