Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
2 / 2 / 0
Регистрация: 21.06.2021
Сообщений: 87

Не меняется свойство Enabled

20.10.2022, 22:45. Показов 576. Ответов 3

Студворк — интернет-сервис помощи студентам
Здравствуйте, не могу изменить св-во Enabled у кнопки , при совершении определённого события( после закрытия формы, которую она вызывает)

При закрытии формы меняем значение у булевой переменной button1ClosedForm (см код Program.cs), и должно меняться св-во Enabled у кнопки -НО оно НЕ меняется...






Для полноты информации:

Код на первой форме
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();
            form2 = new Form2();//созд
            
        }
        Form2 form2;//привязали к первой форме
 
       
        public void button1_Click(object sender, EventArgs e)
        {
            form2.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
public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
            
        }
        
 
        
        private void Form2_FormClosed(object sender, FormClosedEventArgs e)
        {
            Form1 form1 = new Form1();
            CloseForms.button1ClosedForm = true;// CloseForms находиться в Program.cs
            if (CloseForms.button1ClosedForm)
            {
                //обращаемс на 1-ю форму, и на форме кнопка... 
                form1.button1.Enabled = false;
            }
            
 
        }
 
        
    }
И ещё Program.cs , там один метод написал

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
internal static class Program
    {
        /// <summary>
        ///  The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            // To customize application configuration such as set high DPI settings or default font,
            // see https://aka.ms/applicationconfiguration.
            ApplicationConfiguration.Initialize();
            Application.Run(new Form1());
        }
        
    }
 
    // CloseForms будет содерж булевую переменую
    // которая, в свою очередь, отвечает за "Загреивание" кнопки после закрытия формы
    // которую эта кнопка вызывает.
    static class CloseForms
    {
        public static bool button1ClosedForm { get; set; }
 
 
    }
Миниатюры
Не меняется свойство Enabled  
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.10.2022, 22:45
Ответы с готовыми решениями:

Не меняется свойство Enabled у TextBox
Привет. Есть программа с пятью radioButton, при запуске требуется выбрать поле с помощью radioButton, после выполнении вычислений, Второй...

Простое выключение N кнопок(свойство Enabled)
Приветствую. Как можно упростить такую вот запись тем самым избежать лишнего говно-кода (которого и так в моем проекте валом)? (если это...

Свойство Enabled Компонента Button должно зависеть от заполненности TextBox
Вод отрезок из кода: if ((textBox1.Text.Length &gt; 0) &amp; (textBox2.Text.Length &gt; 0)) { button1.Enabled = true;} Форма...

3
2394 / 1923 / 763
Регистрация: 27.07.2012
Сообщений: 5,567
20.10.2022, 23:00
Лучший ответ Сообщение было отмечено Barbaris98 как решение

Решение

Цитата Сообщение от Barbaris98 Посмотреть сообщение
и должно меняться св-во Enabled у кнопки -НО оно НЕ меняется...
Я вас разочарую. Оно, конечно, меняется, но не у той формы, у которой вы ожидали это увидеть. В событии закрытия второй формы вы создаёте ещё одну форму, аналогичную первой. Как бы вызов new (новая) должен намекать. Вот у неё-то вы и устанавливаете button1.Enabled, хотя всё равно этого не увидите, так как форма нигде не показывается. Но вам это и не нужно.

Достаточно написать так:
C#
1
2
3
4
5
6
7
8
9
10
    public partial class Form1 : Form
    {
         /* ... */
       
        public void button1_Click(object sender, EventArgs e)
        {
            form2.FormClosed += (s, e) => button1.Enabled = false;
            form2.Show();
        }
    }
2
fly
 Аватар для I can
4955 / 4646 / 844
Регистрация: 13.04.2015
Сообщений: 9,841
20.10.2022, 23:03
Цитата Сообщение от Barbaris98 Посмотреть сообщение
form1.button1.Enabled = false;
Так это другой экземпляр первой формы.

Добавлено через 40 секунд
Цитата Сообщение от John Prick Посмотреть сообщение
но не у той формы,
Опередил...
1
2 / 2 / 0
Регистрация: 21.06.2021
Сообщений: 87
21.10.2022, 19:31  [ТС]
John Prick, Благодарю, вот так просто и без всяких булевых переменных..., мощная и полезная штука эти делегаты, лямбды.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.10.2022, 19:31
Помогаю со студенческими работами здесь

Как поменять цвет шрифта выводимой надписи в текст боксе, если включено свойство Enabled ?
Как поменять цвет шрифта выводимой надписи в текст боксе, если включено свойство Enabled ? Добавлено через 3 минуты Если кто то...

свойство Enabled
Задача в следующем: нужно чтобы при щелчке свойтво объекта textBox1_Text становилось false, а при повторном щелчке возвращалась в true. я...

Не меняется свойство System.Drawing.Point
Доброго всем вечера! Что за беда? есть класс PLine: public class PLine { System.Drawing.Point poi1, poi2;...

свойство enabled
Как обратиться к свойству enabled и изменять его у объекта qgraphicview?

Кнопка, свойство Enabled
Недавно начал изучать язык и решил создать простейшее графическое приложение, в котором есть кнопка и 2 текстовых поля. А как сделать так,...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru