Как создать форму в visual studio
Чтобы добавить еще одну форму в проект, нажмем на имя проекта в окне Solution Explorer (Обозреватель решений) правой кнопкой мыши и выберем Add(Добавить)->Windows Form.
Дадим новой форме какое-нибудь имя, например, Form2.cs:
Итак, у нас в проект была добавлена вторая форма. Теперь попробуем осуществить взаимодействие между двумя формами. Допустим, первая форма по нажатию на кнопку будет вызывать вторую форму. Во-первых, добавим на первую форму Form1 кнопку и двойным щелчком по кнопке перейдем в файл кода. Итак, мы попадем в обработчик события нажатия кнопки, который создается по умолчанию после двойного щелчка по кнопке:
private void button1_Click(object sender, EventArgs e)
Теперь добавим в него код вызова второй формы. У нас вторая форма называется Form2, поэтому сначала мы создаем объект данного класса, а потом для его отображения на экране вызываем метод Show:
private void button1_Click(object sender, EventArgs e)
Теперь сделаем наоборот — чтобы вторая форма воздействовала на первую. Пока вторая форма не знает о существовании первой. Чтобы это исправить, надо второй форме как-то передать сведения о первой форме. Для этого воспользуемся передачей ссылки на форму в конструкторе.
Итак перейдем ко второй форме и перейдем к ее коду — нажмем правой кнопкой мыши на форму и выберем View Code (Просмотр кода). Пока он пустой и содержит только конструктор. Поскольку C# поддерживает перегрузку методов, то мы можем создать несколько методов и конструкторов с разными параметрами и в зависимости от ситуации вызывать один из них. Итак, изменим файл кода второй формы на следующий:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace HelloApp < public partial class Form2 : Form < public Form2() < InitializeComponent(); >public Form2(Form1 f) < InitializeComponent(); f.BackColor = Color.Yellow; >> >
Фактически мы только добавили здесь новый конструктор public Form2(Form1 f) , в котором мы получаем первую форму и устанавливаем ее фон в желтый цвет. Теперь перейдем к коду первой формы, где мы вызывали вторую форму и изменим его на следующий:
private void button1_Click(object sender, EventArgs e)
Поскольку в данном случае ключевое слово this представляет ссылку на текущий объект — объект Form1, то при создании второй формы она будет получать ее (ссылку) и через нее управлять первой формой.
Теперь после нажатия на кнопку у нас будет создана вторая форма, которая сразу изменит цвет первой формы.
Мы можем также создавать объекты и текущей формы:
private void button1_Click(object sender, EventArgs e)
При работе с несколькими формами надо учитывать, что одна из них является главной — которая запускается первой в файле Program.cs. Если у нас одновременно открыта куча форм, то при закрытии главной закрывается все приложение и вместе с ним все остальные формы.
Как создать копию формы в программе Visual Studio?
Сегодня хочу показать, как можно быстро создать копию формы с помощью графического интерфейса программы Visual Studio.
1. Создадим новый проект типа Windows Forms Application.
2. Выполним команду: Build -> Build Solution.
3. Переходим в окно Solution Explorer и нажимаем правую кнопку мышки на имени текущего проекта. После чего в появившемся контекстном меню выбираем пункт Add и следом в дополнительном меню выбираем пункт New Item.
4. В появившемся окне Add New Item выбираем пункт Inherited Form, после чего нажимаем на кнопку Add.
5. В открывшемся диалоговом окне Inheritance Picker выбираем компонент (форму), на основе которого мы хотим создать копию.
В данном примере в списке содержится только один компонент Form1, поэтому можно сразу же нажать на кнопку OK. (Если данная кнопка не доступна (не активна), то это значит, что вы не выполнили пункт №2).
После нажатия на кнопку выполняется обычно наследование:
class Form2 : Form1 <>
В результате создаётся копия первой формы (Form2).
- Как выполнить команду в cmd
- Как получить исходный код страницы с помощью класса WebBrowser?
- Убираем выделение в первой ячейке DataGridView
Один комментарий
Я добавляю новую форму выбираю производная форма после выбираю форму Form1 и создается копия Form2 на скрине у меня она уже создана
Оставить ответ Отменить ответ
С 20 по 22 апреля пройдут незабываемые битвы среди кибер-гладиаторов в мире информационной безопасности!
Открыта регистрация команд по ссылке .
Не добавляется новая форма в проект C# Visual Studio 19
Создаю небольшое Windows Forms приложение и необходимо добавить вторую форму, но почему то когда нажимаю на проект правой кнопкой мыши -> Добавить -> Форма Windows Forms, я не вижу в принципе пункта для создания формы (как я посмотрел в разных источниках, пункт должен называться Windows Forms). Мб я где то не там ищу, тк вариант с не установленными компонентами вероятно отпадает, поскольку проект с одной формой я смог создать. Подскажите, пожалуйста, что может быть не так? Если какой то информации не хватает, спрашивайте, дополню. Заранее спасибо!
Отслеживать
задан 13 мар 2021 в 7:32
90 9 9 бронзовых знаков
Вы не устанавливали обновление? У меня такая же проблема возникла после установки обновление.
1 янв 2022 в 16:38
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Проблема решена, всё таки не был установлен компонент «Разработка классических приложений .NET», только странно почему всё же проект WindowsForms создался
Отслеживать
ответ дан 13 мар 2021 в 8:21
90 9 9 бронзовых знаков
- winforms
- visual-studio
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.10.27.43697
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Как можно скопировать форму в visual studio?
Мне нужно как-то скопировать форму чтоб заново не создавать. Как я могу это сделать бес конфликтов в проекте?
- Вопрос задан более трёх лет назад
- 3878 просмотров
3 комментария
Простой 3 комментария
Foggy Finder @FoggyFinder
Просто скопируйте, а затем переименуйте класс.
Sasha294 @Sasha294 Автор вопроса
Понятно. Скопировать, переименовать все что назвалось этим формой. И не копировать в студии выбивает ошибку.
Foggy Finder @FoggyFinder
И не копировать в студии выбивает ошибку.
Решения вопроса 0
Ответы на вопрос 1
Андрей Смирнов @GameDev_Easy
Сегодня я пишу на змеях.
Здравствуйте!
Зайдите в обозреватель решений, нажмите на треугольничек рядом с именем вашей формы и выберите файл: .Designer.cs , скопируйте его содержимое.
Создайте новую форму, откройте для нею этот файл и жмите Ctrl + A, Ctrl + V
Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Ваш ответ на вопрос
Войдите, чтобы написать ответ
- SQL Server
- +1 ещё
Почему проект не открывается на других ПК?
- 1 подписчик
- 2 часа назад
- 53 просмотра