Всем привет!
Вопрос очень простой, знаю что в WPF можно изменять контент формы, мне нужно нечто такое реализовать на WinForms.
Есть панель (слева, верх, низ и контент). В левой панели кнопки меню(условно вкладки). Мне необходимо чтобы при нажатии на пункт меню контент панели по центре заменился на контент с другой формы, либо, как-нибудь это все красиво и динамично заменилось (при этом в идеале бы сохранить это боковое меню, верхнюю панель и нижнюю).
Если коротко: необходимо открыть новую форму, на которой те же самые левая, верхняя и нижнияя панель, а по центру контент, но в идеале не хотелось бы дублировать везде эти данные а перенести панели с первой формы, если возможно конечно.
Для начала, сгруппируйте дочерний контент в композитные контролы (панели или пользовательские контролы) чтобы было удобнее управлять ими.
Далее есть два варианта.
Первый - разместить все возможные варианты на форме одновременно и управлять их видимостью чтобы показать нужный.
Второй - динамически добавлять и удалять элементы из коллекции Controls формы.
Также можно положить на форму еще одну панель, чтобы разметить место для контента.
Вот пример как можно такое сделать:
public Control Content {
get { return contentPlaceholder.Controls[0]; }
set {
if (Content == value) return;
value.Dock = DockStyle.Fill;
contentPlaceholder.Controls.RemoveAt(0);
contentPlaceholder.Controls.Add(value);
}
}
В примере выше форме добавляется свойство Content, куда можно присвоить любой контрол. Этот контрол займет на форме место, которое занимает панель contentPlaceholder.
Анимацию смены контента делать сложнее, тут вам придется придумывать что-нибудь самостоятельно.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости