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