Windows forms открыть новую форму

I have Form1 and Form2 in my project. Form2 is just a form with settings for Form1. What is the command to open the Form2 from the Form1 and also what’s the command to close it please?

bluish's user avatar

bluish

26.4k28 gold badges122 silver badges181 bronze badges

asked Apr 19, 2011 at 14:40

Nasgharet's user avatar

0

You need to handle an event on Form1 that is raised as a result of user interaction. For example, if you have a «Settings» button that the user clicks in order to show the settings form (Form2), you should handle the Click event for that button:

private void settingsButton_Click(Object sender, EventArgs e)
{
    // Create a new instance of the Form2 class
    Form2 settingsForm = new Form2();

    // Show the settings form
    settingsForm.Show();
}

In addition to the Show method, you could also choose to use the ShowDialog method. The difference is that the latter shows the form as a modal dialog, meaning that the user cannot interact with the other forms in your application until they close the modal form. This is the same way that a message box works. The ShowDialog method also returns a value indicating how the form was closed.


When the user closes the settings form (by clicking the «X» in the title bar, for example), Windows will automatically take care of closing it.

If you want to close it yourself before the user asks to close it, you can call the form’s Close method:

this.Close();

answered Apr 19, 2011 at 14:44

Cody Gray - on strike's user avatar

0

If you want to open Form2 modally (meaning you can’t click on Form1 while Form2 is open), you can do this:

using (Form2 f2 = new Form2()) 
{
    f2.ShowDialog(this);
}

If you want to open Form2 non-modally (meaning you can still click on Form1 while Form2 is open), you can create a form-level reference to Form2 like this:

private Form2 _f2;

public void openForm2()
{
    _f2 = new Form2();
    _f2.Show(this); // the "this" is important, as this will keep Form2 open above 
                    // Form1.
}

public void closeForm2()
{
    _f2.Close();
    _f2.Dispose();
}

answered Apr 19, 2011 at 14:51

MusiGenesis's user avatar

MusiGenesisMusiGenesis

74.3k40 gold badges192 silver badges334 bronze badges

//To open the form

Form2 form2 = new Form2();

form2.Show();
// And to close
form2.Close();

Hope this helps

answered Apr 19, 2011 at 14:44

cush's user avatar

cushcush

2832 silver badges8 bronze badges

2

I assume your talking about windows forms:

To display your form use the Show() method:

Form form2 = new Form();
form2.Show();

to close the form use Close():

form2.Close();

answered Apr 19, 2011 at 14:43

Simon Stender Boisen's user avatar

1

In a single line it would be:

(new Form2()).Show();

Hope it helps.

answered Jul 30, 2015 at 13:49

On any click event (or other one):

Form2 frm2 = new Form2();
frm2.Show();

answered Apr 19, 2011 at 14:43

Aykut Çevik's user avatar

Aykut ÇevikAykut Çevik

2,0603 gold badges20 silver badges27 bronze badges

If you need to show Form2 as a modal dialog, from within Form1 do:

var form2 = new Form2();
if (form2.ShowDialog() == DialogResult.OK) 
{
    // process results here
}

A modal dialog will retain focus while it is open; it will set the parent windows (Form1) «in the background» until it is closed, which is quite a common practice for settings windows.

answered Apr 19, 2011 at 14:43

Sergi Papaseit's user avatar

Sergi PapaseitSergi Papaseit

16k16 gold badges67 silver badges101 bronze badges

Start with this:

var dlg = new Form2();
dlg.ShowDialog();

answered Apr 19, 2011 at 14:43

Felice Pollano's user avatar

Felice PollanoFelice Pollano

32.9k9 gold badges75 silver badges115 bronze badges

Form1 OpenNewForm = new Form1();
OpenNewForm.Show();

«OpenNewForm» is the name of the Form.
In the second the form opens.

If you want to close the previous form:

this.Close();

answered May 16, 2019 at 3:06

Josué Ayala's user avatar

Josué AyalaJosué Ayala

2851 silver badge12 bronze badges

In C#.Net if you’re inside of a Solution, and inside of a Project, and Form2 (with Form2.cs) is inside of ,

 private void button1_Click(object sender, EventArgs e)
    {
       ProjectName.Form2 secondaryForm= new ProjectName.Form2();

       secondaryForm.Show();
    }

answered Oct 27, 2021 at 20:46

Lorenzo Bassetti's user avatar

1 / 1 / 0

Регистрация: 11.05.2009

Сообщений: 26

1

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

20.12.2009, 01:25. Показов 106854. Ответов 15


Студворк — интернет-сервис помощи студентам

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



0



Dexs

417 / 285 / 3

Регистрация: 29.07.2009

Сообщений: 1,981

20.12.2009, 01:35

2

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

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

Подскажите также какие-нибудь учебники по Windows Forms

http://msdn.microsoft.com/ru-ru/default.aspx



4



1 / 1 / 0

Регистрация: 11.05.2009

Сообщений: 26

20.12.2009, 02:20

 [ТС]

3

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



0



4336 / 1505 / 101

Регистрация: 12.04.2009

Сообщений: 2,342

20.12.2009, 02:29

4

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



2



1 / 1 / 0

Регистрация: 11.05.2009

Сообщений: 26

20.12.2009, 02:42

 [ТС]

5

ок, спасибо, это я и имел в виду



0



yarkov_aleksei

0 / 0 / 3

Регистрация: 24.05.2012

Сообщений: 93

31.08.2013, 20:33

6

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

C#
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();
        }
    }
}

И когда выбираю пункт меню и кликаю на нем, то ничего не происходит. Я пол дня уже голову ломаю.



0



SAUtrade

14 / 14 / 2

Регистрация: 21.10.2012

Сообщений: 140

31.08.2013, 23:31

7

Добавляешь две формы

C#
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();
        }
    }
}
C#
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();
        }
    }
}



1



14 / 14 / 2

Регистрация: 21.10.2012

Сообщений: 140

31.08.2013, 23:36

8



1



yarkov_aleksei

0 / 0 / 3

Регистрация: 24.05.2012

Сообщений: 93

31.08.2013, 23:36

9

Так у меня тоже самое. И не работает. Код первой формы описан выше. Вот код второй формы.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
using System;
using System.Drawing;
using System.Windows.Forms;
 
namespace VKPublicAdmin
{
    public partial class AboutForm : Form
    {
        public AboutForm()
        {
            InitializeComponent();
        }
    }
}

Не работает :`(



0



SAUtrade

14 / 14 / 2

Регистрация: 21.10.2012

Сообщений: 140

31.08.2013, 23:40

10

AbForm.Show();

C#
1
AbForm.ShowDialog();



0



0 / 0 / 3

Регистрация: 24.05.2012

Сообщений: 93

31.08.2013, 23:47

11

Вот проект. Гляньте, пожалуйста, что не так. Я второй день с Дельфей на Шарп пересесть пытаюсь. Щас за пивом пойду. Мозг сломан.



0



SAUtrade

14 / 14 / 2

Регистрация: 21.10.2012

Сообщений: 140

31.08.2013, 23:47

12

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

Так у меня тоже самое. И не работает. Код первой формы описан выше. Вот код второй формы.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
using System;
using System.Drawing;
using System.Windows.Forms;
 
namespace VKPublicAdmin
{
    public partial class AboutForm : Form
    {
        public AboutForm()
        {
            InitializeComponent();
        }
    }
}

Не работает :`(

WindowsFormsApplication7.rar вот рабочий с меню

Выложи свой проект



0



0 / 0 / 3

Регистрация: 24.05.2012

Сообщений: 93

31.08.2013, 23:52

13

Проект открыть не могу. Че то мой SharpDev тупит. А вот экзешник ваш отрабатывает как надо. И у меня то же самое написано но не работает. В чем дело?



0



14 / 14 / 2

Регистрация: 21.10.2012

Сообщений: 140

01.09.2013, 00:12

14

В AboutForm.Disigner.cs

есть строчка this.Opacity = 0.01D;
удали ее и все будет работать и сам в дизайнере ничего никогда не пиши))

Добавлено через 38 секунд
у меня Visual Studio 2012



1



0 / 0 / 3

Регистрация: 24.05.2012

Сообщений: 93

01.09.2013, 00:18

15

SAUtrade, капец, я с 15:00 по Москве бьюсь от стол лбом. На жену рычу, чтоб не лезла, ибо раздражает все. А оказалось я дибил решил с прозрачностью поиграться :`-(. Спасибо вам огромное, не знаю как благодарить.



0



SAUtrade

14 / 14 / 2

Регистрация: 21.10.2012

Сообщений: 140

01.09.2013, 00:24

16

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

SAUtrade, капец, я с 15:00 по Москве бьюсь от стол лбом. На жену рычу, чтоб не лезла, ибо раздражает все. А оказалось я дибил решил с прозрачностью поиграться :`-(. Спасибо вам огромное, не знаю как благодарить.

Бывает)) Мне самому стало интересно что не так)

Добавлено через 3 минуты

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

решил с прозрачностью поиграться

Если с прозрачностью надо то ставь от 0,1 до 1.. Подбери значение которое нужно
И прописуй

C#
1
2
3
4
5
6
7
8
 public partial class AboutForm : Form
    {
        public AboutForm()
        {
            InitializeComponent();
Opacity = 0.8;
        }
    }



0



Добавление форм. Взаимодействие между формами

Последнее обновление: 31.10.2015

Чтобы добавить еще одну форму в проект, нажмем на имя проекта в окне 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)
{
	Form2 newForm = new Form2();
	newForm.Show();
}

Теперь сделаем наоборот — чтобы вторая форма воздействовала на первую. Пока вторая форма не знает о существовании первой. Чтобы это исправить, надо
второй форме как-то передать сведения о первой форме. Для этого воспользуемся передачей ссылки на форму в конструкторе.

Итак перейдем ко второй форме и перейдем к ее коду — нажмем правой кнопкой мыши на форму и выберем 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)
{
	Form2 newForm = new Form2(this);
	newForm.Show();
}

Поскольку в данном случае ключевое слово this представляет ссылку на текущий объект — объект Form1, то при создании второй формы она будет получать ее (ссылку)
и через нее управлять первой формой.

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

Мы можем также создавать объекты и текущей формы:

private void button1_Click(object sender, EventArgs e)
{
	Form1 newForm1 = new Form1();
	newForm1.Show();
		
	Form2 newForm2 = new Form2(newForm1);
	newForm2.Show();
}

При работе с несколькими формами надо учитывать, что одна из них является главной — которая запускается первой в файле Program.cs.
Если у нас одновременно открыта куча форм, то при закрытии главной закрывается все приложение и вместе с ним все остальные формы.


Содержание

  • Условие задания
  • Выполнение
    • 1. Создать приложение типа Windows Forms Application
    • 2. Разработка главной формы приложения
    • 3. Создание второстепенной формы
    • 4. Разработка второстепенной формы
    • 5. Программирование событий клика на кнопках OK и Cancel формы Form2
    • 6. Вызов формы Form2 из главной формы приложения
    • 7. Выполнение приложения
  • Связанные темы

Поиск на других ресурсах:

Условие задания

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

В главной форме Form1 разместить:

  • элемент управления типа Label для вывода результата возврата из второстепенной формы;
  • элемент управления типа Button для вызова второстепенной формы.

Во второстепенной форме Form2 разместить:

  • элемент управления типа Label для вывода заголовка формы;
  • два элемента управления типа Button для обеспечения подтверждения или неподтверждения выбора (действия) во второстепенной форме.

C# Схема взаимодействия между формами

Рис. 1. Схема взаимодействия между формами

 


Выполнение

1. Создать приложение типа Windows Forms Application

Запустить Microsoft Visual Studio 2010. Пример создания нового приложения типа Windows Forms Application подробно описывается здесь.

Сохранить проект в произвольной папке.

После создания приложения у нас есть одна форма. Программный код формы размещен в файле «Form1.cs» (рис. 2).

C# Windows Forms Главная форма

Рис. 2. Главная форма приложения Form1

 

2. Разработка главной формы приложения

Из палитры элементов управления Toolbox выносим на форму:

  • элемент управления типа Button;
  • элемент управления типа Label.

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

C# Windows Forms форма

Рис. 3. Главная форма приложения после внесенных изменений

 

3. Создание второстепенной формы

Для создания второстепенной формы в C# можно воспользоваться несколькими способами.

Способ 1.
Для добавления формы №2 в проект этим способом нужно вызвать команду (рис. 4)

Project -> Add Windows Form...

C# Windows Forms команда "Add Windows Form..."

Рис. 4. Команда «Add Windows Form…» для добавления новой формы в проект

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

Windows Form C# добавление новой формы

Рис. 5. Окно добавления новой формы к проекту

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

C# Windows Forms форма Form2 файл "Form2.cs"Рис. 6. Новосозданная форма Form2 и файл «Form2.cs«

Способ 2.

Также новую форму можно добавить к проекту с помощью соответствующей команды из контекстного меню (рис. 7).
Последовательность действий следующая:

  • в Solution Explorer сделать клик правой кнопкой «мышки» на названии приложения WindowsFormsApplication1;
  • выбрать подменю Add;
  • в подменю Add выбрать команду «Windows Form…«.

C# Windows Forms новая форма Solution Explorer

Рис. 7. Добавление новой формы из Solution Explorer

В результате откроется точно такое же окно как на рисунке 5.

 

4. Разработка второстепенной формы

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

C# Windows Forms Второстепенная форма Form2

Рис. 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.cs» будет иметь следующий вид:

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).

Visual Studio C# Команда "View Code"

Рис. 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: подробный обзор

Windows Forms – это основа для построения пользовательского интерфейса при разработке приложений на языке программирования C#. В рамках данной статьи рассмотрим вопрос открытия форм и опишем основные методы этого процесса.

1. Метод Show()

Метод Show() является наиболее распространенным и простым методом для открытия новой формы. Он предназначен для отображения формы на экране и активации ее для пользователя. В коде это выглядит так:

Form form = new Form();
form.Show();

Этот код создаст новую форму и откроет ее на экране. Однако, если вы хотите открыть форму, которая уже создана, вам необходимо получить доступ к этой форме через экземпляр класса Form и использовать метод Show():

Form form = new Form();
form.Show();

Если вы хотите открыть форму, созданную в другом потоке, вы должны вызывать метод Show() из главного потока, с помощью метода Invoke():

Form form = new Form();
form.Invoke(new Action(() =>
{
    form.Show();
}));

2. Метод ShowDialog()

Метод ShowDialog() открывает дочернюю форму в режиме модального диалога, при котором пользователь не может получить доступ к другим частям вашего приложения, пока не закроет эту форму. Код для открытия новой дочерней формы с помощью ShowDialog() будет выглядеть следующим образом:

ChildForm childForm = new ChildForm();
childForm.ShowDialog();

Метод ShowDialog() часто используется для отображения дополнительной информации или получения выбора пользователя. Он также автоматически закрывает форму после нажатия на кнопку «OK» или «Cancel».

3. Метод ShowOwned()

Если вы хотите открыть форму как дочернюю для другой формы, используйте метод ShowOwned(). Этот метод связывает две формы и создает отношение владения между ними. Код для открытия новой дочерней формы с помощью ShowOwned() будет выглядеть следующим образом:

Form ownerForm = new Form();
ChildForm childForm = new ChildForm();
childForm.ShowOwned(ownerForm);

В данном примере new Form() создает экземпляр формы-владельца, а затем вызывается метод ShowOwned() для отображения формы ChildForm как дочерней для этой формы.

4. Метод ActiveForm()

Метод ActiveForm() позволяет получить ссылку на активную форму в окне приложения. Это может быть полезно, когда вы хотите открыть новую форму в зависимости от активной формы. Например, вы можете создать кнопку на существующей форме, которая откроет новую форму. Код для такой ситуации будет выглядеть следующим образом:

Form newForm = new Form();
newForm.Owner = ActiveForm();
newForm.Show();

5. Метод ShowInTaskbar()

Этот метод позволяет указать, будет ли форма отображаться в панели задач Windows. Если вы не хотите, чтобы форма была видимой в панели задач, вы можете установить значение ShowInTaskBar в false. Это может быть полезно в тех случаях, когда форма используется только для вспомогательных задач. Например, когда вы отображаете окно настроек, которое не должно отображаться в панели задач. Код для этого выглядит следующим образом:

Form form = new Form();
form.ShowInTaskbar = false;
form.Show();

6. Метод ShowWithoutActivation()

Метод ShowWithoutActivation() позволяет отобразить форму, не активируя ее. Это может пригодиться, например, когда нужно отобразить дополнительную информацию, но не нужно переключать пользователя на эту форму и уводить его от основной работы с приложением. Код для этого метода прост:

Form form = new Form();
form.ShowWithoutActivation();

7. Метод BeginInvoke()

Метод BeginInvoke() вызывает асинхронный метод в потоке GUI, что позволяет продолжать работу главного потока без блокировки на выполнение дополнительных задач. Он может быть полезен, когда вы хотите открыть форму, но не хотите заблокировать главный поток. Код для вызова этого метода будет выглядеть так:

Form form = new Form();
form.BeginInvoke((MethodInvoker)delegate
{
    form.Show();
});

В данном примере создается экземпляр формы, а затем вызывается метод BeginInvoke(). В качестве параметра передается делегат, который вызывает метод Show() в потоке GUI.

В заключение

Открытие формы в C# не является сложной задачей, и вам должно быть легко выбрать подходящий метод, который подходит вашим потребностям. Описанные методы можно комбинировать, чтобы создавать более сложные взаимодействия между формами и пользовательским интерфейсом. Надеемся, что данная статья помогла вам лучше понять, как открыть форму в Windows Forms.

  • Windows format usb disk storage format tool
  • Windows forms окно на весь экран
  • Windows found errors on this drive that need to be repaired
  • Windows forms нарисовать круг c
  • Windows form c background image