Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
08.01.2020, 10:57
|
|||
---|---|---|---|
Закрытие формы из UserControl |
|||
#18+
Добрый день, необходимо при инициализации пользовательского элемента управления осуществить некоторые проверки и по их результатам - закрыть форму, на которой размещен этот UserControl. Какие пути решения есть? На ум приходит только public property Parent - передавать туда форму. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.01.2020, 11:56
|
|||
---|---|---|---|
|
|||
Закрытие формы из UserControl |
|||
#18+
Fockewolf, Мне кажется, что это несколько идеологически неправильно, чтобы контрол (какой бы он крутой не был) управлял вышестоящей формой (какой бы никчемной она не была). Я бы предложил посмотреть следующее решение: в контрол добавить событие, которое он генерирует, если считает, что форма должна закрыться, а форма, подписанная на это событие, сама решает накрыться ей или, возможно, продолжать жить. Насчет Parent: на всякий случай имей ввиду, что там может быть не обязательно форма. Если контрол расположен не просто на форме, а внутри какого-нибудь контейнера (например Panel), то ссылка будет именно на контейнер, т.е. чтобы получить форму, надо будет пройти по всей цепочке вложенности. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.01.2020, 12:05
|
|||
---|---|---|---|
|
|||
Закрытие формы из UserControl |
|||
#18+
Fockewolf, самое очевидное - это должно быть событие, как написали выше вы когда кладёте на форму элементы управления, вы же подписываетесь на их события и реализуете обработку там, где подписываетесь а не передаёте в них ссылку на родительский элемент управления и не ждёте, что внутри себя они будут с ним что-то там делать вот и свой UserControl наделите необходимыми вам событиями менее очевидное - это посмотреть на уже существующие подходы, разобраться в них: MVP, MVVM в том же WPF есть система команд и нечто подобное можно легко реализовать самому в WinForms ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=20&tablet=1&tid=1398656]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
139ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
others: | 10ms |
total: | 235ms |
0 / 0 |