Как добавить форму в c
Чтобы добавить еще одну форму в проект, нажмем на имя проекта в окне 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. Если у нас одновременно открыта куча форм, то при закрытии главной закрывается все приложение и вместе с ним все остальные формы.
Как вызвать форму в C#?
Привет всем. Написал фтп, создал форму, кнопки сделал, по кнопкам прописал функции. Сначала было без main, добавил main, теперь не знаю, как с мэина вызвать форму.
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using FTP_lib; namespace Project1 < static void Main() < >public partial class Form1: Form < ftp_Manager newFtpManager = new ftp_Manager(); public Form1() < InitializeComponent(); >private void username_txtb_TextChanged(object sender, EventArgs e) < >private void Form1_Load_1(object sender, EventArgs e) < newFtpManager.ftp_Username = username_txtb.Text; newFtpManager.ftp_Password = password_txtb.Text; >private void getContent_Click(object sender, EventArgs e) < newFtpManager.getContent("ftp://youdomain.com"); >private void upload_file_Click(object sender, EventArgs e) < newFtpManager.UploadFile("ftp://yourdomain.com/filedestination", "C:\\myfile.exe"); >private void donwload_button_Click(object sender, EventArgs e) < newFtpManager.DownloadFile("ftp://ftp.mama.tomsk.ru/festival/", "C:\\Download"); >private void delete_file_Click(object sender, EventArgs e) < newFtpManager.DeleteFile("ftp://yourdomain.com/file.exe"); >> >
Отслеживать
51.2k 86 86 золотых знаков 266 266 серебряных знаков 505 505 бронзовых знаков
Пример создания и вызова новой формы приложения в C#
Разработать демонстрационное приложение, осуществляющее вызов из главной формы второстепенной формы по схеме, изображенной на рис. 1. Приложение реализует взаимодействие между различными формами, которыми могут быть диалоговые окна любой сложности.
В главной форме Form1 разместить:
- элемент управления типа Label для вывода результата возврата из второстепенной формы;
- элемент управления типа Button для вызова второстепенной формы.
Во второстепенной форме Form2 разместить:
- элемент управления типа Label для вывода заголовка формы;
- два элемента управления типа Button для обеспечения подтверждения или неподтверждения выбора (действия) во второстепенной форме.

Рис. 1. Схема взаимодействия между формами
⇑
Выполнение
1. Создать приложение типа Windows Forms Application
Запустить Microsoft Visual Studio 2010 . Пример создания нового приложения типа Windows Forms Application подробно описывается здесь.
Сохранить проект в произвольной папке.
После создания приложения у нас есть одна форма. Программный код формы размещен в файле « Form1.cs » (рис. 2).

Рис. 2. Главная форма приложения Form1
⇑
2. Разработка главной формы приложения
Из палитры элементов управления Toolbox выносим на форму:
- элемент управления типа Button ;
- элемент управления типа Label .
Автоматически создаются два объекта-переменные с именами button1 и label1 .
В элементе управления типа Button свойство Text установить в значение « Show Form 2 «.
В элементе управления типа Label свойство Text установить в значение « Result = «.
После внесенных изменений главная форма Form1 приложения будет иметь вид как показано на рисунке 3.

Рис. 3. Главная форма приложения после внесенных изменений
⇑
3. Создание второстепенной формы
Для создания второстепенной формы в C# можно воспользоваться несколькими способами.
Способ 1.
Для добавления формы №2 в проект этим способом нужно вызвать команду (рис. 4)
Project -> Add Windows Form.

Рис. 4. Команда « Add Windows Form… » для добавления новой формы в проект
В результате откроется окно « Add New Item — Windows Forms Application1 «. В этом окне выбираем элемент « Windows Form » (рис. 5). Оставляем имя формы как « Form2.cs «.

Рис. 5. Окно добавления новой формы к проекту
После нажатия на кнопке « Add » новая форма будет добавлена к проекту (рис. 6).

Рис. 6. Новосозданная форма Form2 и файл « Form2.cs «
Способ 2.
Также новую форму можно добавить к проекту с помощью соответствующей команды из контекстного меню (рис. 7).
Последовательность действий следующая:
- в Solution Explorer сделать клик правой кнопкой «мышки» на названии приложения WindowsFormsApplication1 ;
- выбрать подменю Add ;
- в подменю Add выбрать команду « Windows Form… «.

Рис. 7. Добавление новой формы из Solution Explorer
В результате откроется точно такое же окно как на рисунке 5.
⇑
4. Разработка второстепенной формы
Следующим шагом есть разработка второстепенной формы. Используя средства панели инструментов Toolbox создаем второстепенную форму Form2 как показано на рисунке 8. Такое построение формы соответствует условию задачи. Таким же образом, на Form2 имеем элементы управления label1 , butto1 , button2 .

Рис. 8. Второстепенная форма Form2
⇑
5. Программирование событий клика на кнопках OK и Cancel формы Form2
Программируем событие клика на кнопке OK . Подробный пример программирования события клика на кнопке OK описывается здесь.
В программный код обработчика события button1_Click() (кнопка « OK «) вписываем следующую строку:
this.DialogResult = DialogResult.OK;
это значит, что результат возврата из формы Form2 есть « OK «.
Точно так же в обработчике события button2_Click вписываем:
this.DialogResult = DialogResult.Cancel;
это значит выбор кнопки « Cancel » ( button2 ).
После внесенных изменений листинг программного кода файла « Form2.c s» будет иметь следующий вид:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WindowsFormsApplication1 < public partial class Form2 : Form < public Form2() < InitializeComponent(); >private void button1_Click(object sender, EventArgs e) < this.DialogResult = DialogResult.OK; > private void button2_Click(object sender, EventArgs e) < this.DialogResult = DialogResult.Cancel; > > >
Переход к программному коду формы Form2 (файл « Form2.cs «) можно осуществить с помощью Solution Explorer . Для этого в Solution Explorer вызываем контекстное меню для формы Form2 и из этого меню выбираем команду « View Code » (рис. 9).

Рис. 9. Команда « View Code » для перехода в режим программного кода
⇑
6. Вызов формы Form2 из главной формы приложения
Согласно с условием задачи, для вызова Form2 из Form1 нужно запрограммировать событие клика на кнопке « Show Form 2 «.
Программный код обработчика события будет иметь следующий вид:
. private void button1_Click(object sender, EventArgs e) < Form2 f = new Form2(); // создаем объект типа Form2 if (f.ShowDialog() == DialogResult.OK) // вызов диалогового окна формы Form2 < label1.Text = "Result = OK!"; > else < label1.Text = "Result = Cancel!"; > > .
В листинге, приведенном выше, сначала создается экземпляр класса типа Form2 . В операторе условного перехода if осуществляется вызов диалогового окна формы Form2 с помощью строки
f.ShowDialog();
Функция ShowDialog() выводит окно формы и держит его открытым до тех пор, пока пользователь не сделает какой-либо выбор. После выбора пользователем той или иной команды, окно закрывается с кодом возврата. Происходит проверка кода возврата с известными константами класса DialogResult . После проверки выводится сообщение о действии, выбранном пользователем в Form2 (элемент управления label2 ).
Листинг всего программного кода формы Form1 следующий
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WindowsFormsApplication1 < public partial class Form1 : Form < public Form1() < InitializeComponent(); >private void button1_Click(object sender, EventArgs e) < Form2 f = new Form2(); if (f.ShowDialog() == DialogResult.OK) < label1.Text = "Result = OK!"; > else < label1.Text = "Result = Cancel!"; > > > >
⇑
7. Выполнение приложения
После выполненных действий можно выполнять приложение и исследовать его работу.
Связанные темы
- Delphi. Создание новой формы и подключение ее к главной форме программы
- C++ Builder. Пример создания и вызова новой формы из главной формы приложения
- Пример создания и вызова диалогового окна в MS Visual Studio 2010 — C++ (MFC)
Как создать Windows Forms проект на C++

Windows Forms — интерфейс программирования приложений, отвечающий за графический интерфейс пользователя. Он является частью .Net Framework и создан для того, чтобы упростить взаимодействие пользователя с элементами Win API. Причём не просто упростить, а буквально полностью скрыть низкоуровневое взаимодействие с графическими элементами путём создания набора базовых компонентов и классов. При этом используемые классы не привязаны к языку разработки, благодаря чему данный проект может использоваться как на родном для Microsoft C#, так и на других языках, например, C++, VB Net и F#. Но не смотря на свою кроссплатформенность в мире языков программирования, Windows Forms проекты легко создаются на C#, однако при попытке создания проекта на C++ возникает множество проблем.
Шаг 0. А вдруг получится сразу?
В настоящее время IDE, поддерживающих Windows forms, не так много — буквально одна только Visual Studio, более известная как просто «студия». Поэтому будем рассматривать создание и решение проблем именно в этой среде разработки. Первым шагом запустим студию, начнём создавать новый проект и попытаемся найти Windows forms проект для C++:

Создаём новый проект в студии

Ищем Winfows Forms для C++
Если у вас более старая версия Visual Studio, то интерфейс будет выглядеть немного иначе, однако данная функциональность будет той же. Также не исключено, что у Вас может быть данный тип проекта для C++ (на некоторых версиях формы для C++ были доступны сразу после установки IDE). Если же у Вас, как и у нас поиск не дал нужных результатов, то переходим к следующему шагу.
Шаг 1. Создание CLR проекта
Поскольку непосредственно Windows Forms проекта у нас не оказалось, мы обхитрим студию и создадим пустой CLR проект на С++. Для этого в том же окне поиска необходимо найти и выбрать Новый CLR проект , ввести имя (если нужно, то поменять директорию расположения проекта) и немного подождать, пока студия сделает свою работу.

Ищем пустой CLR проект (.Net Framework)

Создаём новый пустой CLR проект
В результате Visual Stido создаст новый C++ CLR проект, который будет выглядеть примерно так:

Результат создания нового CLR проекта
Шаг 2. Добавить форму
Чтобы сделать CLR проект проектом Windows Forms, нужно просто добавить в него форму. Для этого в верхнем меню нужно выбрать Проект — Добавить новый элемент и в появившемся окне выбрать категорию Visual C++ — UI и затем выбрать Форма Windows Forms .

Проект -> Добавить новый элемент

Visual C++ -> UI -> Форма Windows Forms
После данной операции нас ждёт разочарование в виде ошибки Исключение из HRESULT: 0x8000000A :

Вместо формы получили ошибку
Шаг 3. Исправляем появившуюся ошибку
Данная ошибка появляется из-за того, что для создания окна формы приложению необходима основная программа, создающая форму и переключающая управление на неё, однако после добавления новой формы файл Form1.cpp предсказуемо создаётся пустым. Поэтому необходимо добавить основную программу в файл с формой:
#include «Form1.h» #include using namespace имя_вашего_проекта; int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
В результате код файла Form1.cpp будет выглядеть следующим образом:

Добавление основной программы к форме
Шаг 4. Переоткрыть проект
Всё, что теперь осталось сделать — это закрыть текущее решение, а затем открыть его снова. Для этого можно закрыть саму студию, а можно выбрать в верхнем меню Файл — Закрыть решение , после чего в появившемся окне выбрать только что созданный проект и открыть его заново.

Форма создалась, можно добавлять компоненты
Благодаря добавленному коду основной программы, студия сможет создать форму и на экране появится изображение формы, на которую можно будет добавлять компоненты, задавать их свойства, а также свойства самой формы.

Программист, сооснователь programforyou.ru, в постоянном поиске новых задач и алгоритмов
Языки программирования: Python, C, C++, Pascal, C#, Javascript
Выпускник МГУ им. М.В. Ломоносова
Programforyou — это сообщество, в котором Вы можете подтянуть свои знания по программированию, узнать, как эффективно решать те или иные задачи, а также воспользоваться нашими онлайн сервисами.
Copyright © 2017 — 2023 Programforyou — помощь с программированием | programforyou.ru
