Как создать второе окно в windows forms
Перейти к содержимому

Как создать второе окно в windows forms

  • автор:

Как создать второе окно в windows forms

Чтобы добавить еще одну форму в проект, нажмем на имя проекта в окне 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. Если у нас одновременно открыта куча форм, то при закрытии главной закрывается все приложение и вместе с ним все остальные формы.

как создать дополнительное окно в Windows Forms(т.е. внутри одного приложения при нажатии кнопки будет открываться второе окно)

Нужно сделать окно, которое при нажатии на кнопку будет открываться второе окно (для добавления нового файла). Допустим будет кнопка «добавить» при нажатии будет высвечиваться\открываться второе окно, в котором нужно будет заполнить несколько текстовых блоков, и при нажатии сохранить, всё это сохраниться в тхт файле. В общем, просто о том как создать второе окно в виндовс форм. Что-то вроде диалогового окна с кнопкой.

Отслеживать

20.1k 6 6 золотых знаков 37 37 серебряных знаков 81 81 бронзовый знак

2 окна в windows form

Помогите связать 2 окна в windows Form. В первом(главном) показано выполнение программы(а именно изменение текста прочитанного с файла) во втором должен быть текст прочитанный с файла, без изменений. Так вот, как поместить текст файла во второе окно?

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

Как внутри окна Form 1 открыть окно Form 2
Как внутри окна Form 1 открыть окно Form 2 т.е. как бы обновить form 1?

Изменение размеров окна Form
Всем здрасте! Можете подсказать как изменить размер окна, например по нажатии кнопки.

Запуск wpf окна из win form приложения
Добрых времени суток. Есть win form проект, добавляю в него WpfControlLibrary, в которой имеется.

Создать win form, используя шаблон windows form в clr, однако такого шаблона на моей студии 2013 нет
есть необходимость создать win form используя шаблон windows form в clr, однако такого шаблона на.

136 / 104 / 9
Регистрация: 30.01.2011
Сообщений: 699

1) зачем второе окно? -можно и в одном сделать
2) раз уж два окна, считывай фаил в строку(к примеру) и передавай в 2 окно(форму, как я понял), а в первом редактируй.

Life Builder
532 / 496 / 374
Регистрация: 12.01.2011
Сообщений: 1,753

ЦитатаСообщение от smith.gl Посмотреть сообщение

Помогите связать 2 окна в windows Form. В первом(главном) показано выполнение программы(а именно изменение текста прочитанного с файла) во втором должен быть текст прочитанный с файла, без изменений. Так вот, как поместить текст файла во второе окно?

Просто загрузи текст из файла. Поставь код в форм лоад

textBox1.Text = System.IO.File.ReadAllText("путь до файла");

Не открывается новое окно в моем проекте (winforms, C#)?

у меня есть главная форма, на ней кнопка, при нажатии которой открывается второе окно, в этом окне тоже есть кнопка, и когда я ее нажимаю на эту кнопку ДОЛЖНО тоже открываться новое окно, но этого почему то не происходит. точнее окно вроде как открывается, но очень каряво и его нельзя открыть и остальные окна после этого вообще не получается закрыть. приходится нажимать на панел задач на VS и только так закрывать окна. подскажите из за чего так может быть? может типичный Form2 f = new Form2(); f.ShowDialog(); уже не работает и надо вводить что то другое?

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

Комментировать

Решения вопроса 1

firedragon

Владимир Коротенко @firedragon

Не джун-мидл-сеньор, а трус-балбес-бывалый.

f.ShowDialog()
Открывает модальное диалоговое окно
f.Show()
Открывает форму.

Ответ написан более трёх лет назад

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

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