С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
2 / 2 / 1
Регистрация: 22.10.2012
Сообщений: 64

Из дочерней формы убрать событие из объекта главной формы (а потом обратно добавить)

28.01.2016, 09:25. Показов 1056. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть основная форма, которое я называю главной формой.
Создаю дочернюю форму - "Настройки", на которой задаю настройки отображения информации на главной форме.
В режиме реального времени главная форма показывает изменения, введённые на форме "Настройке": когда на форме "Настройки" изменяю разделитель между HEX-символами в textbox (c именем textBoxComand) главной формы, то в textBoxComand на главной форме сразу же изменяется содержимое согласно этому изменению (до закрытия формы "Настройки").
Из главной формы запускаю форму "Настройки":
C#
1
2
OptionsForm fo = new OptionsForm(this);
                fo.ShowDialog(this);
соответственно, само создание этой формы:
C#
1
2
3
4
5
6
private Form mForm;
public OptionsForm(MainForm par_MainForm)
        {
            InitializeComponent();
            mForm = par_MainForm;
        }
Все манипуляции с указанием на mForm.textboxCommand проходят без проблем, кроме одного - нельзя убрать событие у textBoxComand (в частности, событие TextChanged). При изменении текста в textBoxComand, срабатывает событие TextChanged, чего нельзя.
Если просто указать:
C#
1
mForm.textBoxComand.TextChanged -= mForm.textBoxComand_TextChanged;
, то это не работает. Сейчас у меня работает, только если перед созданием формы "Настройки" убрать событие для textBoxComand.
Help!

P.S.Пробовал и так - не работает:
C#
1
((MainForm)this.Owner).textBoxComand.TextChanged -= ((MainForm)this.Owner).textBoxComand_TextChanged;
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.01.2016, 09:25
Ответы с готовыми решениями:

System.StackOverflowException при обращении к элементу главной формы из дочерней формы
При закрытии дочерней формы (client) необходимо обратиться к элементу listView1 главной формы (server). // Тут в форме server создаю...

Передача параметров из дочерней формы в класс, унасле́дованный от главной формы
Добрый день, форумчане. Сильно не пинайте. Ситуация такая: из главной формы вызываю дочернюю на дочерней форме есть куча ComboBox...

Вызвать событие при закрытии дочерней формы
При закрытии дочерней формы мне нужно вызвать метод в главной форме. Подскажите как это сделать.

1
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
28.01.2016, 12:39
VLeshka,
Так:
C#
1
mForm.textBoxComand.TextChanged -= mForm.textBoxComand_TextChanged;
не работает, т.к. mForm - объект класса Form, а не MainForm. Даже если поменять объявление на
C#
1
private MainForm mForm;
то придется менять модификаторы доступа на public как для textBoxComand так и для textBoxComand_TextChanged.

Здесь:
C#
1
((MainForm)this.Owner).textBoxComand.TextChanged -= ((MainForm)this.Owner).textBoxComand_TextChanged;
нужно приводить не Owner, а mForm:
C#
1
(mForm as MainForm).textBoxComand.TextChanged -= (mForm as MainForm).textBoxComand_TextChanged;
И опять же предварительно нужно менять модификаторы доступа.

Поэтому самый правильный вариант, это как-раз тот который работает, т.е.:
C#
1
2
3
4
OptionsForm fo = new OptionsForm(this);
textBoxComand.TextChanged -= textBoxComand_TextChanged;
fo.ShowDialog();
textBoxComand.TextChanged += textBoxComand_TextChanged;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.01.2016, 12:39
Помогаю со студенческими работами здесь

Не работает событие при закрытие дочерней формы
Добрый день, не могу решить данную проблему. При закрытии дочерней формы должны оставаться данные которые отображаються в datagridview,...

Открытие дочерней формы после главной
Мне надо чтоб у меня было 2 формы с начало открывалась 1 потом 2 главная.Кто может дать код? И еще мне надо код чтоб как я нажимал на...

Вызов метода главной формы из дочерней
Здравствуйте, уважаемые форумчане, не могу разобраться с проблемой. В главной форме (которая создаётся по умолчанию в ВизуалСтудии) есть...

Обращение к объектам главной формы с дочерней
2 формы на главной PictureBox при клике на нём вызывается 2 форма { equipment equip = new equipment(); ...

Блокирование главной формы во время работы с дочерней
Помогите плиз, пишу программу, где по нажатию по меню создается дочерняя форма. Однако мне нужно, чтобы во время работы с дочерней формой...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru