Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.97.9.168] |
|
Сообщ.
#1
,
|
|
|
Полностью код писать не буду, он не сохранился, попробую там понятно рассказать с примерами.
Есть форма. На форме лежит панель 1, а на ней еще панель 2. На панели 2 лежат юзер контролы. На форме подписываюсь на событие панели 2 EnabledChanged: private void pnl2_EnabledChanged(object sender, EventArgs e) { pnl1.Enabled = pnl2.Enabled; } Т.е. по моей задумке, при изменении свойства Enabled панели 2, должно соответственно измениться свойство панели 1. В коде юзер контрола пишу Parent.Enabled = false; try { var dlg = new Dlg(); if (dlg.ShowDialog() != DialogResult.OK) { return false; } } finally { Parent.Enabled = true; } } Т.е. по задумке, контролы которые находятся на панели 2 (ничего не зная обо всем остальном), выставляют панели два свойство Enabled, перед открытием некоего диалога и после закрытия возвращают значения (это для того, что бы при открытом диалоге "затенить" основную форму). Получается что когда выставляется Enabled = false, событие отрабатывает и форма "затеняется", все контролы отключаются. А вот при Enabled = true, события EnabledChanged панели два уже не происходит. ПОчему??? Пришлось городит огород со своим событием. Но очень хотелось бы знать почему так? |