Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
 Аватар для DeveloperZ
1 / 1 / 1
Регистрация: 14.01.2017
Сообщений: 99

Работа с большим изобилием форм

09.11.2017, 22:54. Показов 760. Ответов 1

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Появилась такая потребность: В проекте есть множество форм, в пример я приведу 3 формы. Есть главная форма (1), на этой форме 2-е кнопки, 1-ая кнопка открывает 2-ую форму, а 2-ая кнопка 3-ью форму. Так вот мне нужно сделать так: При открытии 2-ой или 3-ей формы, 1-ая должна скрыться( Hide() ), а при закрытии 2-ой или 3-ей формы, 1-ая должна показаться( Show() ). Решил делать это с помощью доп. класса:
Кликните здесь для просмотра всего текста

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
/// <summary>
    /// Вспомогательный класс, для упрощенной работы с формами
    /// </summary>
    static class HelperForm
    {
        static AdminForm admin;
        static AuthorizationF auth;
 
        /// <summary>
        /// AdminF
        /// </summary>
        /// <param name="code">1 - new Form(); 2 - Close(); 3 - Show(); 4 - Hide()</param>
        static public void AdminF(int code)
        {
            bool initial = false;
            switch (code)
            {
                case 1:
                    if (admin == null || admin.IsDisposed)
                        admin = new AdminForm();
                    initial = true;
                    break;
                case 2:
                    if (initial == true)
                        admin.Close();
                    initial = false;
                    break;
                case 3:
                    if (initial == true)
                        admin.Show();
                    break;
                case 4:
                    if (initial == true)
                        admin.Hide();
                    break;
            }
        }
 
        /// <summary>
        /// AuthorizationF
        /// </summary>
        /// <param name="code">1 - new Form(); 2 - Close(); 3 - Show(); 4 - Hide()</param>
        static public void AuthorizationF(int code)
        {
            bool initial = false;
            switch (code)
            {
                case 1:
                    if (auth == null || auth.IsDisposed)
                        auth = new AuthorizationF();
                    initial = true;
                    break;
                case 2:
                    if (initial == true)
                        auth.Close();
                    initial = false;
                    break;
                case 3:
                    if (initial == true)
                        auth.Show();
                    break;
                case 4:
                    if (initial == true)
                        auth.Hide();
                    break;
            }
        }

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

P.S. Всем спасибо!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.11.2017, 22:54
Ответы с готовыми решениями:

Программа с большим количеством форм
Стоит задача сделать программу с большим количеством форм ( около 50), т.е. на форме примерно какой-то текст типа задание, textbox для...

Ищу хорошую практику по работе с формами для сайта с большим количеством форм
Есть задача написать сайт с большим количеством форм ввода данных. Около 30 интерфейсов будет (по 10-30 элементов в каждой форме). Сайт...

Работа с большим массивом
Всем привет. С шарпах я почти не бум-бум и по этому задаю сей смешной и простой вопрос. Как мне засунуть эти числа в двумерный массив? ...

1
Эксперт .NET
 Аватар для Rius
13163 / 7722 / 1679
Регистрация: 25.05.2015
Сообщений: 23,524
Записей в блоге: 14
10.11.2017, 06:26
DeveloperZ,
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.Windows.Forms;
 
namespace WindowsFormsAppDeveloperZ
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            this.Hide();
 
            using (var dialog = new Form2())
            {
                dialog.ShowDialog();
            }
 
            this.Show();
        }
    }
}
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
26
27
28
29
using System;
using System.Windows.Forms;
 
namespace WindowsFormsAppDeveloperZ
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            using (var dialog = new Form2())
            {
                this.ShowOtherDialog(dialog);
            }
        }
 
        private DialogResult ShowOtherDialog(Form other)
        {
            this.Hide();
            var result = other.ShowDialog();
            this.Show();
            return result;
        }
    }
}
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
26
27
28
29
30
31
32
33
using System;
using System.Windows.Forms;
 
namespace WindowsFormsAppDeveloperZ
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            using (var dialog = new Form2())
            {
                this.ShowOtherDialog(dialog);
            }
        }
 
    }
 
    public static class FormExtension
    {
        public static DialogResult ShowOtherDialog(this Form currentForm, Form otherForm)
        {
            currentForm.Hide();
            var result = otherForm.ShowDialog();
            currentForm.Show();
            return result;
        }
    }
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.11.2017, 06:26
Помогаю со студенческими работами здесь

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

Работа с большим файлом
У меня есть файл размером 150мб, не могу открыть в C++. Нашел инфу, что fread может помочь, но примеров толковых так и не смог найти. Может...

Работа с большим объемом данных
Имеется загруженное изоображение с помощью opencv. Задача: вывести цвета изображения с из колличеством. Цвет задаю структурой, хранящей...

Работа с большим текстовым файлом
Мне нужно написать текстовый редактор для больших файлов. Использую memory mapped files (где можно прочитать подробности?). Почему то тема...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru