Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
1 / 1 / 0
Регистрация: 12.03.2015
Сообщений: 222

Выполнение одного из условий на 1 кнопке

21.08.2019, 13:34. Показов 2155. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, на 1 форме есть 2 кнопки, при клике на одну из них открывается форма 2, на форме 2 есть 1 кнопка, как реализовать условие if, чтобы в зависимости от нажатой кнопки на 1 форме, выполнялось 1 из условий при клике кнопки на форме 2 ?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.08.2019, 13:34
Ответы с готовыми решениями:

Выполнение только одного из условий
Есть примерно след. порядок кода: q = 0; функция () { переменные; if (q == 0) // первый вариант развития событий ...

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

Выполнение условий
Добрый день. Пытаюсь выполнить данное условие в mathlab, но что-то идет не так. Последнее значение не меняется. A=12; i=1:A; l(i)=i;...

6
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
21.08.2019, 14:22
Dzhon,
1) Собственно, создаешь 2 формы.
2) на форме1 2 кнопки. код к форме:
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
using System;
using System.Windows.Forms;
 
namespace WindowsFormsApp81
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        public string ResultChoiseInForm2 = "";
 
        private void button1_Click(object sender, EventArgs e)
        {
            Form2 SecondForm = new Form2();
 
            SecondForm.ValueChanged += new Action<string>((x) => { ResultChoiseInForm2 = x; });
 
            SecondForm.Show();
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            MessageBox.Show(ResultChoiseInForm2);
        }
    }
}
3) на вторую форму добавлешь numericUpDown (для примера), чтобы добавить условие if, и кнопку. код второй формы:
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
using System;
using System.Windows.Forms;
 
namespace WindowsFormsApp81
{
    public partial class Form2 : Form
    {
        public event Action<string> ValueChanged;
 
        public Form2()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            if (numericUpDown1.Value == 1)
            {
                ValueChanged("Выбрано число 1");
            }
            else if (numericUpDown1.Value == 2)
            {
                ValueChanged("Выбрано число 2");
            }
        }
    }
}
Как работает. нажимаешь на кнопку1 в первой форме - открывается форма2 - выбираешь в numericUpDown 1 или 2 - нажимаешь на кнопку в форме2 - переходишь в форму1 - нажимаешь на кнопку2 - получаешь результат.
2
1 / 1 / 0
Регистрация: 12.03.2015
Сообщений: 222
21.08.2019, 17:04  [ТС]
AndreyVorobey, немного не то, пытался сделать условие через обработчик клика но не получилось
Вложения
Тип файла: 7z WindowsFormsApplication2.7z (31.8 Кб, 1 просмотров)
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16150 / 11271 / 2890
Регистрация: 21.04.2018
Сообщений: 33,142
Записей в блоге: 2
21.08.2019, 17:13
Лучший ответ Сообщение было отмечено Dzhon как решение

Решение

Цитата Сообщение от Dzhon Посмотреть сообщение
при клике на одну из них открывается форма 2, на форме 2 есть 1 кнопка, как реализовать условие if, чтобы в зависимости от нажатой кнопки на 1 форме, выполнялось 1 из условий при клике кнопки на форме 2 ?
Как я понял по клику вы каждый раз создаёте новую форму.
Тогда проще передавать значение в конструктор формы.
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
    public partial class Form2 : Form
    {
        private int? Value;
 
        public Form2()
        {
            InitializeComponent();
        }
        public Form2(int value) 
            : this()
            => Value=value;
 
 
        private void button1_Click(object sender, EventArgs e)
        {
            if (Value == null)
            {
                  /// Блок команд для безпараметрического конструктора
                  return
             }
            switch(Value)
            {
                  case 1: 
                          /// Блок команд для 1
                          break;
                  case 2: 
                          /// Блок команд для 2
                          break;
            }
        }
    }
Вызов из первой формы
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
       /// Общий обработчик для обоих кнопок
        private void button_Click(object sender, EventArgs e)
        {
            if (sender is Button butt)
            {
                 if (butt == button1)
                      (new Form2(1)).Show();
                 if (butt == button2)
                      (new Form2(2)).Show();
            }
        }
 
    }
1
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16150 / 11271 / 2890
Регистрация: 21.04.2018
Сообщений: 33,142
Записей в блоге: 2
21.08.2019, 17:35
Лучший ответ Сообщение было отмечено Dzhon как решение

Решение

Цитата Сообщение от Dzhon Посмотреть сообщение
немного не то, пытался сделать условие через обработчик клика но не получилось
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
using System;
using System.Windows.Forms;
 
namespace WindowsFormsApplication2
{
    public enum ModeForm2 { AddData, EditData }
    public partial class Form2 : Form
    {
        private ModeForm2 _mode;
 
        private Form2() => InitializeComponent();
        private ModeForm2 Mode
        {
            get => _mode;
            set
            {
                _mode = value;
                switch (Mode)
                {
                    case ModeForm2.AddData:
                        label1.Text = "Клик по кнопке Добавить данные";
                        break;
                    case ModeForm2.EditData:
                        label1.Text = "Клик по кнопке Редактировать данные";
                        break;
                }
            }
        }
        public Form2(ModeForm2 mode)
            : this()
            => this.Mode = mode;
 
        private void button1_Click(object sender, EventArgs e)
        {
            switch (Mode)
            {
                case ModeForm2.AddData:
                    //label1.Text = "Клик по кнопке Добавить данные";
                    // Блок команд добавления данных
                    break;
                case ModeForm2.EditData:
                    //label1.Text = "Клик по кнопке Редактировать данные";
                    // Блок команд редактирования данных
                    break;
            }
        }
 
        //void AddButton_Click(object sender, EventArgs e)
        //{
        //    label1.Text = "Клик по кнопке Добавить данные";
        //}
 
    }
}
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 WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void button_Click(object sender, EventArgs e)
        {
            if (sender is Button butt)
            {
                if (butt == button1)
                    (new Form2(ModeForm2.AddData)).Show();
                else if (butt == button2)
                    (new Form2(ModeForm2.EditData)).Show();
            }
        }
 
        //private void button2_Click(object sender, EventArgs e)
        //{
        //    Form2 f2 = new Form2();
        //    f2.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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
namespace WindowsFormsApplication2
{
    partial class Form1
    {
        /// <summary>
        /// Обязательная переменная конструктора.
        /// </summary>
        private System.ComponentModel.IContainer components = null;
 
        /// <summary>
        /// Освободить все используемые ресурсы.
        /// </summary>
        /// <param name="disposing">истинно, если управляемый ресурс должен быть удален; иначе ложно.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }
 
        #region Код, автоматически созданный конструктором форм Windows
 
        /// <summary>
        /// Требуемый метод для поддержки конструктора — не изменяйте 
        /// содержимое этого метода с помощью редактора кода.
        /// </summary>
        private void InitializeComponent()
        {
            this.button1 = new System.Windows.Forms.Button();
            this.button2 = new System.Windows.Forms.Button();
            this.SuspendLayout();
            // 
            // button1
            // 
            this.button1.Anchor = System.Windows.Forms.AnchorStyles.Bottom;
            this.button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
            this.button1.Font = new System.Drawing.Font("Times New Roman", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
            this.button1.Location = new System.Drawing.Point(14, 118);
            this.button1.Margin = new System.Windows.Forms.Padding(5);
            this.button1.Name = "button1";
            this.button1.Size = new System.Drawing.Size(180, 43);
            this.button1.TabIndex = 0;
            this.button1.Text = "Добавить данные";
            this.button1.UseVisualStyleBackColor = true;
            this.button1.Click += new System.EventHandler(this.button_Click);
            // 
            // button2
            // 
            this.button2.Anchor = System.Windows.Forms.AnchorStyles.Bottom;
            this.button2.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
            this.button2.Font = new System.Drawing.Font("Times New Roman", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
            this.button2.Location = new System.Drawing.Point(204, 118);
            this.button2.Margin = new System.Windows.Forms.Padding(5);
            this.button2.Name = "button2";
            this.button2.Size = new System.Drawing.Size(224, 43);
            this.button2.TabIndex = 1;
            this.button2.Text = "Редактировать данные";
            this.button2.UseVisualStyleBackColor = true;
            this.button2.Click += new System.EventHandler(this.button_Click);
            // 
            // Form1
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(10F, 21F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.BackColor = System.Drawing.Color.White;
            this.ClientSize = new System.Drawing.Size(442, 187);
            this.Controls.Add(this.button2);
            this.Controls.Add(this.button1);
            this.Font = new System.Drawing.Font("Times New Roman", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
            this.Margin = new System.Windows.Forms.Padding(5);
            this.Name = "Form1";
            this.Text = "Form1";
            this.ResumeLayout(false);
 
        }
 
        #endregion
        public System.Windows.Forms.Button button2;
        public System.Windows.Forms.Button button1;
    }
}
Архив с исправлениями приложен
Вложения
Тип файла: 7z WindowsFormsApplication2(1).7z (141.4 Кб, 2 просмотров)
1
1 / 1 / 0
Регистрация: 12.03.2015
Сообщений: 222
22.08.2019, 18:11  [ТС]
Элд Хасп, Большое спасибо)), почему-то в VS15 код не работал
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16150 / 11271 / 2890
Регистрация: 21.04.2018
Сообщений: 33,142
Записей в блоге: 2
22.08.2019, 18:28
Цитата Сообщение от Dzhon Посмотреть сообщение
почему-то в VS15 код не работал
Там не работают вот такие строки
C#
1
2
3
        public Form2(ModeForm2 mode)
            : this()
            => this.Mode = mode;
Для 2015 надо так
C#
1
2
3
4
5
        public Form2(ModeForm2 mode)
            : this()
            {
                 this.Mode = mode;
             }
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.08.2019, 18:28
Помогаю со студенческими работами здесь

Выполнение трех условий
Короче суть такая с клавы вводяться 4 произвольных числа и даны 4 условия 3 из них прога выполняет а на 4 я застрял не могу понять как...

Выполнение условий в программе
Написать программу, вычисляющую по заданной величине X, являющейся величиной дохода в долларах, величину уплаты налога Y. Налог...

Выполнение двух условий
Здравствуйте! Подскажите, как на С#реализовать проверку на 2 условия одновременно т.е, например, х&gt;5 и x&lt;10?

Выполнение нескольких условий
Подскажите плиз с данным условием. Есть 3 comboBox (медико-возростная группа, подгруппа и упражнение) и 2 textBox (Баллы и Оценка). Условие...

Выполнение условий от элемента ComboBox
Здравствуйте. У меня есть элемент Combo Box. В зависимости от выбранного пункта необходимо выполнять действие, но когда я начинаю...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru