Я нахожусь в середине проекта с несколькими дочерними формами. Многие из форм могут быть открыты одновременно. Я хотел бы знать, есть ли уже что-то, что я могу использовать для управления и отслеживания этих форм, так же как панель задач Windows и / или диспетчер задач. Если нет, то каков будет лучший подход? Я не хочу изобретать велосипед, если это уже сделано.
Описание
Как уже упоминалось выше, этот проект имеет много форм, которые могут быть открыты одновременно. Я также буду реализовывать некоторый визуальный элемент управления списком (так же, как панель задач или диспетчер задач) для управления пользователями этими формами (или, в случае пользователя, формы называются окнами). Наиболее идеальным способом управления ими было бы сначала захватить каждую из этих форм по мере их создания и вести их учет где-либо. Некоторые формы нуждаются в этом поведении, а некоторые - нет. Например, модальные формы никогда не нуждаются в такой обработке.
Я предоставлю пользователю доступ к показу, свертыванию или закрытию этих форм, а также к некоторой другой необдуманной обработке в будущем, например, к пользовательскому всплывающему меню, связанному с одной из этих форм (но это другой вопрос). Дело в том, что мне нужно создать что-то, чтобы захватить эти формы и сохранить их в порядке.
Это также будет включать некоторое другое взаимодействие пользователя со всеми формами одновременно, а также простой доступ к каждой из них, аналогично тому, как Screen.Forms уже работает. Например, команда для минимизации всех форм (FormManager.MinimizeAll
), максимизации текущей активной формы (FormManager.ActiveForm.Maximize
) или с определенной формой (FormManager[3].Maximize
).
Возможные варианты
Я понимаю, что есть несколько разных подходов для достижения похожих результатов, и я еще не начал кодировать их, потому что у каждого из этих подходов есть разные отправные точки. Возможны варианты ...
- Обтекание экрана. Формы и другие связанные с ним функциональные возможности с экрана (которые не позволили бы мне достичь желаемой гибкости)
- Каждый раз, когда я создаю форму, регистрируйте ее в этом менеджере форм (который очень гибок, но я должен всегда регистрировать каждую созданную форму)
- Создайте мастер-форму, чтобы зарегистрировать ее в менеджере форм и унаследовать от нее все (что также очень гибко, но по-разному и намного сложнее)
Второй вариант звучит наиболее многообещающе. Но опять же, я не хочу начинать строить это, если уже есть решение для этого. Я уверен, что я не первый, кто это делает. Я не знаю, как искать такую вещь, я не получаю ничего, что мне нужно в Google.