Я опытный разработчик MVC, который сделал мою первую попытку создания внутреннего продукта WinForms для компании, в которой я работаю.WinForms: Показать новую форму в том же окне
Когда мое приложение сначала загружает его, загружает LoginForm (который наследует от BaseForm, чтобы установить такие параметры, как размер окна, свойства NotifyIcon и т. Д.). При успешном входе в систему я хочу сохранить одно и то же окно, но заменить содержимое на новый экран. Это кажется довольно простым, но даже после поиска, как это сделать, никто из них не работает, как я ожидал.
Я пробовал такой код:
private void Button_Click(object sender, RoutedEventArgs e)
{
Window1 W1 = new Window1();
W1.Show();
this.Close();
}
Но, конечно же, что открывает новое окно и закрывает текущую, который не то, что я хочу. Я хочу сохранить одно и то же родительское окно и просто заменить содержимое.
У меня есть два вопроса (они вроде родственных):
1) Как просто заменить содержимое окна родителя с новой формой, а не открывать его в новом окне? Сейчас мои формы находятся в отдельных элементах управления WinForms (LoginForm и ChatForm). Нужно ли мне проектировать проект по-другому, чтобы это сделать?
2) ChatForm содержит SplitContainer с кнопками слева (см. Снимок экрана ниже). При нажатии каждой кнопки содержимое правой панели должно измениться. Будет ли это лучше всего представлено UserControls (один для ChatQueue, один для ChatWindow, передача параметров, чтобы он знал, с кем мы общаемся)?
Просто пытаясь окунуться в основную архитектуру проекта WinForms и навигация между различными экранами контента.
Мое предложение было бы очистить все элементы управления (или те, которые хотите уйти), а затем добавить других в ту же форму. – MiKE