我是一名經驗豐富的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