2013-07-10 58 views
1

我想實現以下WinForms用戶界面,在頂部有兩個按鈕,允許用戶在兩​​個視圖之間切換。基於按鈕點擊更改面板/視圖

所以,當我點擊第一按鈕(「顯示用戶配置文件」),下面的三塊板應顯示三種不同的用戶配置文件(有一些內容從數據庫中獲取),像這樣......

enter image description here

當我點擊第二個按鈕(「顯示聊天記錄」),下面的三塊板應顯示三個不同的聊天記錄(有一些內容從數據庫中獲取),像這樣......

enter image description here

什麼是在C#/ .Net中實現這種結構的好方法(動態或靜態)?是否有比我下面粗方法的清潔劑或至少更有效的方式:

  • 佈局三套控制三個配置文件
  • 佈局三套控制爲三聊天-史,重疊的上頂 個人資料的控件。
  • 根據按下哪個按鈕更改控件的可見性。
  • 例如,如果單擊第一個按鈕,設置可見=假供大家聊天曆史相關的控制和設置可見= TRUE所有相關的用戶配置文件的控制。
+0

而不是頂部的兩個按鈕來切換與multiplpe pannels視圖爲什麼不使用選項卡控件? – Kurubaran

+0

是否在整個表單之間切換「選項卡控件」,還是可以在我自己定製的項目選項之間切換? – boardbite

+1

選項卡控件會爲您提供一組單獨的面板。它明顯的方式來做到這一點,但如果你想覆蓋面板和控制可見性,你可以,而且很好。我有一個內容查看器,根據內容的MIME類型顯示圖像或文本,並且在沒有用戶交互的情況下進行上下文切換,因此將圖像控件放置在文本框的頂部並將其設置爲可見,如果MIME類型是圖像/ JPEG。如果用戶想要做出選擇,我會使用選項卡控件。 –

回答

3

選項卡控件會爲您提供一組單獨的面板。它明顯的方式來做到這一點,但如果你想覆蓋面板和控制可見性,你可以,而且很好。我有一個內容查看器,根據內容的MIME類型顯示圖像或文本,並且在沒有用戶交互的情況下進行上下文切換,因此將圖像控件放置在文本框的頂部並將其設置爲可見,如果MIME類型是圖像/ JPEG。如果用戶想要做出選擇,我會使用選項卡控件。

我假設你正在使用可視化UI來添加控件。您可以將選項卡控件拖到窗體中,默認情況下應該顯示2個定義的選項卡。您可以在修改Tabpages集合的屬性中添加更多內容。這也是您將其重命名以反映您的選擇(配置文件,聊天)的地方。將選項卡控件拖動到窗體上您想要的位置並適當調整其大小,或將其停靠以填充窗體。將3個面板拖入第一個選項卡,然後單擊第二個選項卡,然後在其中拖動3個面板。然後繼續進行,因爲你會有。當用戶點擊聊天標籤時,標籤控件將管理視圖 - 隱藏第一個標籤及其3個面板。當然,單擊第一個選項卡會使該tabPage再次可見。不需要你編碼任何東西。

我只是補充一點,我不明白有3個配置文件可見和3個聊天記錄的設計。除非你的用戶將被限制在3個朋友身上。我認爲你最好在個人資料頁面上使用列表框作爲朋友的名字,只需一個簡檔面板,根據選擇哪個朋友填充個人資料控件,然後在聊天頁面上使用同一個列表,聊天面板,基於哪個朋友被選中,將歷史加載到文本框中。這樣你就可以擁有所有你想要的朋友:)

爲了完整起見,我會建議一種方法,爲什麼用戶必須在標籤之間切換才能查看用戶配置文件或聊天記錄在一個tabPage?您可以通過編程爲每個用戶創建一個新選項卡,並在該選項卡上的左側有他們的配置文件面板,右側有他們的聊天記錄。較少上下文切換=更好的用戶體驗。選項卡控件將允許您滾動顯示自動(tm)不適合窗體的選項卡。

+0

您上面的意見將更適合您的答案。所以,不要發表評論,編輯你的答案並在那裏包含你的想法。 –

+0

@John:感謝您多加註意UI的建議;給了我一些新的想法。我在這個問題中的例子只是一個我認爲會讓問題更容易提出的例子。最終應用程序不完全只是一個聊天/配置文件應用程序。 – boardbite

+0

另外,更新:我已經開始構建基於tabcontrol的佈局,並且到目前爲止似乎相當容易。下一步是將動態/編程添加新的tabcontrols! – boardbite