Torakami Ответов: 1

Как скрыть текущее окно от пользовательского элемента управления перед переходом к новому


Привет ,

Я создаю приложение для windows.
где я добавил элемент управления меню в usercontrol и добавил этот элемент управления в другие мои формы.

Теперь я хочу, чтобы в моем меню, когда я выбираю новую форму, она должна скрыть или закрыть ранее открытое окно, а затем показать мне следующее окно.

Но это...скрыть от пользователя элемент управления в меню click event не работает

Что я уже пробовал:

частная newToolStripMenuItem_Click недействительным(объект отправителя, EventArgs в электронной)
{
CallDetailsForm frmCalls = новый CallDetailsForm();
frmCalls.Покажите();
этот.Скрыть();
}

BillWoodruff

Этим можно легко управлять, но, во-первых, нам нужно знать вашу архитектуру здесь: это проект WinForm " MDI "или стандартный проект WinForm с "основной формой"?

Какова ваша цель здесь: позволить пользователю двигаться "вперед и назад" через последовательность форм?.. показывать следующую форму и скрывать предыдущую ?

Когда вы создаете новую форму внутри метода ... как показывает ваш код здесь ... как только этот метод заканчивается, у вас нет ссылки на созданную форму.

Действительно ли создание новой формы с каждым щелчком меню-это то, что вы хотите сделать здесь ?

1 Ответов

Рейтинг:
0

OriginalGriff

Вы не можете скрыть форму изнутри usercontrol - у вас нет к ней доступа.
Вместо этого, создать событие в ваш пользовательский элемент управления, который обрабатывает форму и какие запросы в форме, чтобы прятаться (и еще, чтобы показать это снова позже)

На данный момент у вас нет очевидного способа повторного отображения формы - вам, вероятно, нужно обработать событие CallDetailsForm.FormClosing в вашем UserControl, чтобы указать, что что-то должно быть отображено.


Torakami

Спасибо, не могли бы вы показать мне пример кода, чтобы справиться с этим scnerio. Это было бы полезно для меня. Спасибо

OriginalGriff

Какой код вам нужен?
Вы знаете, как обрабатывать событие и как добавить обработчик, да?
И вы знаете, как создать событие, я полагаю?

BillWoodruff

к вашему сведению: можно было бы скрыть/удалить форму из UserControl, используя метод TopLevelControl, чтобы получить самый внешний объект контейнера, но я думаю, что это ужасный выбор :)

OriginalGriff

Просто потому, что ты можешь что-то сделать... :смеяться: