Как добавить форму в проект (Windows Forms .NET)
Добавьте формы в свой проект с помощью Visual Studio. Если в приложении несколько форм, вы сможете выбрать начальную форму для приложения или одновременно отобразить несколько форм.
Документация по рабочему столу для .NET 7 и .NET 6 находится в стадии разработки.
Добавление новой формы
Добавьте новую форму в Visual Studio.
- В Visual Studio найдите панель Обозреватель проектов. Щелкните проект правой кнопкой мыши и выберите Добавить>Форма (Windows Forms).

- В поле Имя введите имя формы, например MyNewForm. Visual Studio сформирует имя по умолчанию, которое является уникальным. Можно использовать это имя.

После добавления формы Visual Studio откроет конструктор форм для этой формы.
Добавление ссылки на проект в форму
Если у вас есть исходные файлы для формы, можно добавить форму в проект, скопировав файлы в папку проекта. Ссылки на все файлы кода в папке проекта и в дочерних папках проекта будут автоматически добавлены в проект.
Форма включает два файла с одинаковыми именами и разными расширениями: form2.cs (form2 — пример имени файла) и form2.Designer.cs. Иногда присутствует файл ресурсов с тем же именем — form2.resx. В предыдущем примере form2 представляет собой базовое имя файла. Необходимо скопировать все связанные файлы в папку проекта.
Кроме того, можно использовать Visual Studio для импорта файла в проект. При добавлении существующего файла в проект файл копируется в папку проекта.

- В Visual Studio найдите панель Обозреватель проектов. Щелкните проект правой кнопкой мыши и выберите Добавить>Существующий элемент.
- Перейдите в папку, содержащую файлы формы.
- Выберите файл form2.cs, где form2 — базовое имя файла для связанных файлов формы. Не выбирайте другие файлы, например form2.Designer.cs.
См. также
- Как расположить форму и изменить ее размер (Windows Forms .NET)
- Общие сведения о событиях (Windows Forms .NET)
- Размещение и компоновка элементов управления (Windows Forms .NET)
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
Управление одной формой из другой
Иногда бывает нужно обратиться к элементам какой-то формы из другой в процессе выполнения программы. Например, есть форма Form1, из нее мы открываем другую Form2 и теперь, работая в форме Form2 нужно обратиться, получить доступ к элементам родительской формы Form1. Я нашел несколько способов как это сделать.
1-й способ. Передача ссылки в public переменную.
Перед открытием формы, передаем ссылку на нужный элемент в переменную public вызываемой формы.
namespace WindowsApplication1 < public partial class Form1 : Form < public Form1() < InitializeComponent(); >private void button1_Click(object sender, EventArgs e) < Form2 frm = new Form2(); frm.but1 = this.button1; // передаем ссылку на кнопку в форму Form2 frm.ShowDialog(); >> >
В форме Form2 переменная, в которую передавали ссылку, будет теперь соответствовать кнопке button1 из формы Form1
namespace WindowsApplication1 < public partial class Form2 : Form < public Button but1; // эта переменная будет содержать ссылку на кнопку button1 из формы Form1 public Form2() < InitializeComponent(); >private void button1_Click(object sender, EventArgs e) < but1.Text = "test"; // меняем текст на кнопке button1 формы Form1 >> >
2-й способ. Передача ссылки в дочернюю форму.
Суть примерна та же, то и в 1-м способе. При открытии формы Form2 передаем в нее ссылку на элемент, который планируем потом менять.
namespace WindowsApplication1 < public partial class Form1 : Form < public Form1() < InitializeComponent(); >private void button1_Click(object sender, EventArgs e) < Form2 frm = new Form2(this.button1); // передаем ссылку на кнопку в форму Form2 frm.ShowDialog(); >> >
Теперь в форме Form2 нужно создать переменную, которая будет содержать ссылку на эту кнопку и через нее будем обращаться к кнопке на Form1 (строки 5,7,9 и 15).
namespace WindowsApplication1 < public partial class Form2 : Form < private Button but1; // эта переменная будет содержать ссылку на кнопку button1 из формы Form1 public Form2(Button but) // получаем ссылку на кнопку в переменную but < but1 = but; // теперь but1 будет ссылкой на кнопку button1 InitializeComponent(); >private void button1_Click(object sender, EventArgs e) < but1.Text = "test"; // меняем текст на кнопке button1 формы Form1 >> >
3-й способ. Доступ ко всей родительской форме.
Чтобы осуществить это, нужно внести изменения в нескольких файлах, но зато при этом получим доступ ко всем элементам родительской формы и не нужно передавать ссылку на каждый элемент, как в 1-м способе.
Шаг 1. В файле Program.cs создаем публичную переменную f1 (строка 5).
namespace WindowsApplication1 < static class Program < public static Form1 f1; // переменная, которая будет содержать ссылку на форму Form1 [STAThread] static void Main() < Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); >> >
Шаг 2. Открываем Form1.Designer.cs и в нем у элементов, к которым нужно будет обратиться из другой формы, меняем private на public . Например, сделаем доступной для изменений кнопку button1 на форме Form1.
public System.Windows.Forms.Button button1; // заменили private на public
Шаг 3. При создании формы Form1 присваиваем переменной f1 ссылку на эту форму (строка 7)
namespace WindowsApplication1 < public partial class Form1 : Form < public Form1() < Program.f1 = this; // теперь f1 будет ссылкой на форму Form1 InitializeComponent(); >private void button1_Click(object sender, EventArgs e) < Form2 frm = new Form2(); frm.ShowDialog(); >> >
Шаг 4. Теперь из абсолютно любой формы или из любого класса можно обратиться к элементу button1 находящемуся на Form1 так: Program.f1.button1. Например, пусть кнопка в Form2 поменяет текст кнопки на Form1:
namespace WindowsApplication1 < public partial class Form2 : Form < public Form2() < InitializeComponent(); >private void button1_Click(object sender, EventArgs e) < Program.f1.button1.Text = "test"; // Меняем текст на кнопке формы Form1 >> >
Как сделать переход на другую форму в c
При нажатии на кнопку Button, открываем из одной формы Form1, другую форму Form2.
Для Form1:
Unit1.cpp
#include #pragma hdrstop #include "Unit1.h" #include "Unit2.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) < >//--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) < // Form2->ShowModal(); Form2->Show(); >
Unit1.h
//--------------------------------------------------------------------------- #ifndef Unit1H #define Unit1H //--------------------------------------------------------------------------- #include #include #include #include //--------------------------------------------------------------------------- class TForm1 : public TForm < __published: // IDE-managed Components TButton *Button1; void __fastcall Button1Click(TObject *Sender); private: // User declarations public: // User declarations __fastcall TForm1(TComponent* Owner); >; //--------------------------------------------------------------------------- extern PACKAGE TForm1 *Form1; //--------------------------------------------------------------------------- #endif
Для Form2:
Unit2.cpp
#include #pragma hdrstop #include "Unit2.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm2 *Form2; //--------------------------------------------------------------------------- __fastcall TForm2::TForm2(TComponent* Owner) : TForm(Owner) < >//--------------------------------------------------------------------------- void __fastcall TForm2::Button1Click(TObject *Sender) < Form2->Close(); >
Unit2.h
#ifndef Unit2H #define Unit2H //--------------------------------------------------------------------------- #include #include #include #include //--------------------------------------------------------------------------- class TForm2 : public TForm < __published: // IDE-managed Components TButton *Button1; void __fastcall Button1Click(TObject *Sender); private: // User declarations public: // User declarations __fastcall TForm2(TComponent* Owner); >; //--------------------------------------------------------------------------- extern PACKAGE TForm2 *Form2; //--------------------------------------------------------------------------- #endif
- C++ Builder
- Button
- Form
- VCL Forms Application
- Windows Application
- Show
- Назад
- Вперёд
- Вы здесь:
- Главная

- Уроки и примеры по программированию С++

- Уроки и примеры программирование на C++ в Builder 6

- Из первой формы Form 1 открыть вторую форму Form2 | Программирование С++
Меню
- Главная
- Уроки и примеры по программированию С++
- Уроки и примеры программирование на C++ в Builder 6
- Уроки и примеры программирования на C++ в Embarcadero RAD Studio 10 | C++ Builder 10
- Примеры FireMonkey
- Примеры с аудио
- Примеры с видео
- Примеры Microsoft Excel
- Примеры Microsoft Word
- Примеры часов и таймеров
- Примеры с архивами
- Настройка C++ Builder 6
- Настройка Embarcadero RAD Studio 10 | C++ Builder 10
- Настройка Qt
© 2024 C++ Репeтитор | Уроки по программированию на С++ | C++ Уроки | Примеры программ С++
Переход на новую форму

Подскажите плиз, как создать новую форму В С# и при нажатии кнопки чтобы переходило на эту форму.
Одна форма уже есть!!Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:Как загружать на форму элементы управления, не создавая новую форму?
Здравствуйте, столкнулся с вопросом в visual studio c#, как загружать на форму элементы управления.
Переход на новую строчку в Label
Как продолжить выводить текст в новой строке? Например Label.text = "aaabbb"; что нужно.Переход на новую главу книги.
Объясните как перелистывать страницы. Есть книга,каждая глава этой книги лежит в отдельном.Переход на новую строку в comboBox
Всем привет, подскажите, почему при вызове в комбоксе "\n " для перехода на новую строку, все.1487 / 1226 / 245
Регистрация: 02.04.2010
Сообщений: 2,783
Баян-баянище.Form2 f = new Form2(); f.Show();
33 / 58 / 13
Регистрация: 26.05.2011
Сообщений: 756
Этот код Не создает новой формы. Выбивает ошибку.
6609 / 4028 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Сообщение от shilovec5377 
Выбивает ошибку.
какую ошибку и
Сообщение от shilovec5377 
33 / 58 / 13
Регистрация: 26.05.2011
Сообщений: 756
скажи как перейти на новую форму!
6609 / 4028 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Сообщение от shilovec5377 
при нажатии кнопки чтобы переходило на эту форму.
в обработчике этой самой кнопки вставляешь код freeba, естественно заменив Form2 на свой класс формы
33 / 58 / 13
Регистрация: 26.05.2011
Сообщений: 756
Какой мне нужно вставить код,чтобы перейшло на новую форму.1 2 3 4
private void button2_Click(object sender, EventArgs e) { }

6609 / 4028 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1название_класса_второй_формы f = new название_класса_второй_формы(); f.Show();
33 / 58 / 13
Регистрация: 26.05.2011
Сообщений: 756А как создать вторую форму?
Добавлено через 3 минуты
Все спасибо не надо, сам нашел!6279 / 3564 / 898
Регистрация: 28.10.2010
Сообщений: 5,926
Сообщение было отмечено Памирыч как решение
Решение
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесьListView переход на новую строку
В ListView используется представление Tile или LargeIcons. Если выбирать элемент с помощью клавиш.
Не видит новую форму
У меня есть 6 форм. Если добавить 7 форму,то в проект она добавится. Но вот в коде ее не будет.Как открыть новую форму?
Здравствуйте! Подскажите, пожалуйста, как открыть новую форму? Это форма была не создана, а.
Как создать новую форму?
Ребят, как создать новую форму и вызвать ее? И что бы при вызове второй формы первая блокировалась?Или воспользуйтесь поиском по форуму: