Как запустить другую форму c
Перейти к содержимому

Как запустить другую форму c

  • автор:

Как запустить другую форму 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 бронзовых знаков

Открытие другой формы

Существуют два диалоговых окна: Form1 и Form2, как осуществить с помощью нажатия баттона в Form1 открытие Form2? Помогите пожалуйста, а то после Делфи очень сложно разобраться.
P.S. Подскажите также какие-нибудь учебники по Windows Forms, гугл не помогает

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Очистка данных формы, открытие другой формы
И снова здравствуйте, дорогие жители форума. Столкнулся с простой на первый взгляд проблемой, но.

Открытие и закрытие формы из другой формы
помогите пожалуйста. из формы1 открывается форма2, а при закрытии формы2 должна открываться.

Открытие одной формы из другой.
Такая тема. Вообщем есть допустим 2 формы. Объявляю в первой форме остальную как обычно. form2.

Закрытие формы и открытие другой
Товарищи, помогите, подскажите как закрыть форму. Дело вот вот в чем: есть главная форма: .

417 / 285 / 3
Регистрация: 29.07.2009
Сообщений: 1,981

1 2 3 4 5
private void button1_Click(object sender, EventArgs e) { Form f2 = new Form(); f2.Show(); }

ЦитатаСообщение от hike38 Посмотреть сообщение

Подскажите также какие-нибудь учебники по Windows Forms
Регистрация: 11.05.2009
Сообщений: 26

а если я хочу не создавать новую форму, а открыть уже существующую в проекте Form2, как это реализовать?

4336 / 1505 / 101
Регистрация: 12.04.2009
Сообщений: 2,342

Всмысле открыть существующую? Вы должны создать экземпляр класса Form2
Form2 f2 = new Form2();
f2.Show();

Регистрация: 11.05.2009
Сообщений: 26
ок, спасибо, это я и имел в виду
Регистрация: 24.05.2012
Сообщений: 93

Я конечно припозднился )) но чтоб не создавать новую тему спрошу тут. Вот тот метод который вы советуете у меня не работает. Пишу так.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
using System; using System.Collections.Generic; using System.Drawing; using System.Windows.Forms; namespace VKPublicAdmin { public partial class MainForm : Form { public MainForm() { InitializeComponent(); } //AboutForm AbForm; private void MenuItem3_About_Click(object sender, EventArgs e) { AboutForm AbForm = new AboutForm(); AbForm.Show(); } } }

И когда выбираю пункт меню и кликаю на нем, то ничего не происходит. Я пол дня уже голову ломаю.
Регистрация: 21.10.2012
Сообщений: 140
Добавляешь две формы

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
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 Test { public partial class Parent : Form { public Parent() { InitializeComponent(); } private void Show_Click(object sender, EventArgs e) { Child form1 = new Child(); form1.ShowDialog(); } } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
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 Test { public partial class Child : Form { public Child() { InitializeComponent(); } private void Close_Click(object sender, EventArgs e) { this.Close(); } } }

Как в C# запустить другую форму и закрыть предыдущую?

Суть вопроса: Как правильно открыть вторую форму и закрыть первую?

Пробовал запускать вторую форму и закрывать первую, так:

form.Show(); this.Close();

но при этом после открытия второй формы приложение завершает работу. Если же сделать так:

form.Show(); this.Hide();

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

  • Вопрос задан более трёх лет назад
  • 15362 просмотра

Комментировать
Решения вопроса 2

Rou1997

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

У второй формы есть событие, кажется, Closed или FormClosed, в этом событии можно закрывать первую форму уже через Close, и приложение завершит работу.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *