vb.net контролирует в отдельных файлах - PullRequest
2 голосов
/ 09 августа 2011

Короткая версия : элементы управления Windows VB.Net форм, которые часто перетаскиваются из панели инструментов в форму. Код для управления идет прямо в форму. Обычно это замечательно, но возможно ли написать код для элемента управления пользовательского интерфейса (например, панели) в отдельный файл, который затем можно импортировать или иным образом включить в основной класс формы?

Контекст (длинная версия a.k.a.): у меня есть форма с неизменным столбцом навигационных кнопок с левой стороны. Остальная часть формы занята различными панелями, которые в свою очередь имеют свои собственные элементы управления. Нажатие на разные кнопки слева должно вызвать появление этих разных панелей (нажатие кнопки «A» вызывает панель «A»; кнопка «B» вызывает панель «B» и т. Д.), Но левое меню должно остаться без изменений.

Мне трудно элегантно реализовать этот дизайн в VB.Net. Если я сделаю каждую панель отдельной формой, мне придется дублировать код, который создает неизменное левое меню в каждом файле, что ужасно. Я попытался использовать унаследованные формы, чтобы отдельные панели унаследовали левое меню от главной формы, но это означает, что каждый щелчок по меню создает новую форму в новом окне, и хотя левое меню наследуется, меню что я щелкнул, и идентично выглядящее меню в новом окне не совпадает с объектами в памяти и не знает друг друга.

Мне просто нужно одно окно с центральным содержимым, которое изменяется в зависимости от того, что вы нажимаете слева. Решением этой проблемы было бы использование панелей - панелей, а не отдельных форм, как я сейчас это делаю. Но в организационном плане это становится грязным, потому что код для всех панелей должен быть в одном массивном мастер-файле. Отсюда и краткая форма моего вопроса (см. Выше): как я могу закодировать панель в отдельный файл и затем поместить ее в сгиб основной формы?

1 Ответ

1 голос
/ 09 августа 2011

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

...