2013-07-04 88 views
0

我正在啓動Windows桌面機器的C#應用​​程序。打開新窗體或編輯當前窗體

我想知道什麼是我的方案的最佳方法。

我有2個簡單的形式,其中一個將有幾個按鈕,這將是主要的開始形式。第二種形式將有一些標籤和文本字段將用掃描儀填寫。我將稍後嘗試接受來自COM端口的輸入,因此無論誰使用它都不需要選擇程序來獲得輸入。在第二種形式的最後一個文本框填充正確後,程序返回到第一種形式。

我正在考慮顯示新窗體並隱藏主窗體,但我認爲這將是一個窗口中最好的。

我對C#很新,所以這是學習最佳實踐的經驗。

謝謝

+0

你也許可以探索的TabControl,並創建兩個選項卡爲你的兩個虛擬窗口。另一個Tab(比方說Tab1)將被禁用,直到其他Tab(比方說Tab2)的輸入完成。那麼這是其他Tab(即Tab1)被啓用並準備好進行交互的時間。 – Edper

回答

1

我不是很確定你想要什麼王的信息,但由於「我很新的C#」,我給你,我想我會需要知道什麼時候信息我對「C#非常陌生」。

我個人建議不要使用Windows窗體,並使用WPF。它允許您製作完全可定製的應用程序,並向您的應用程序添加很多功能(尤其是視覺功能),這些功能使用Forms將無法​​實現。

在使用WPF的情況下,您可能會有一個窗口和兩個單獨的UserControls。 根據此應用程序的複雜程度,您應該考慮使用圖案,如MVVMhttp://msdn.microsoft.com/en-us/magazine/dd419663.aspx);你可能期望你的應用程序越複雜,我推薦使用它的越多。

在使用MVVM的情況下,您的Forms(我將它們稱爲UserControls),都會有一些DataContext集合。 DataContext將是視圖(您的UserControl)將綁定到的類。因此,您的想法是,您可能在此ViewModelDataContext)中有方法使用來自COM端口的數據填充其成員,並且視圖(UserControl)將綁定到其指示數據的DataContextViewModel)在ViewModelViewModel也有責任通知視圖何時更新值,以便它可以顯示它。 ViewModel上的屬性也可以更新(通過綁定),以指示用戶在UserControl上更改了某些內容。因此,例如,您的Textbox可能會綁定到String property,這樣當String property更改時,將更新Textbox。同樣,當Textbox中的文本發生更改時,字符串屬性將被更新。這是所有可定製的。這個想法是,ViewViewModel之間有一個乾淨的分隔,所以東西很容易測試,並且不太可能破壞。

我不完全確定你在找什麼,但我希望這有助於!

好運

+0

謝謝埃珀,這是一個很好的起點。我沒有考慮過WPF,所以我會研究一下 – BrinkDaDrink

+0

我覺得Edper值得爲這個富有洞察力的入門讚不絕口! – Killingsworth

+0

我會但沒有15個代表點 – BrinkDaDrink