2009-10-11 103 views
0

我(仍然)正在編寫一個小應用程序,它需要我使用多個窗體窗體才能顯示給用戶。使用多窗口窗體的應用程序

當應用程序使用多個外部設備執行測試時,某些表單只顯示進度消息。

的形式將通常是爲了被使用(參見下文),但可能存在一些誤差來自設備,在這種情況下將用於報告形式的錯誤拾取。用戶可以選擇回到開始或第二次測試(第一次測試需要30分鐘執行)。錯誤報告可以從任何其他形式調用。

此外,最終表單可以選擇返回到開始在新設備上執行測試。

顯然這會導致一組表單變得相當糾結。如果它被用於幾個設備有錯誤等

所以我有幾個問題。

我使用的形式正確,如果是,我如何通過控制從一種形式到下一個,而不必返回到原始形態,如果是有道理的?

我還可以有機會獲得在前面的形式創建的所有變量,或者我應該建立在最初的形式設置所有的變量?

或者我是否應該在一個父母表格中完成所有處理,並簡單地「顯示」其他表格作爲該程序的一部分?

我希望這聽起來不太愚蠢,但我還沒有在C#中使用多種形式。這些步驟也是相互依賴的。

以下是形式通常的流程圖,與PRGERREP從任何形式的(更多或更少)被調用。

PRGSTART 
PRGDEFAULT 
PRGTEST1 
PRGTEST2 
PRGTEST3 
PRGTEST4 
PRGMANUAL 
PRGFINALE 

PRGERREP 

任何幫助或建議將不勝感激。

回答

1

請嘗試關注更多的問題,而不是上下文。 即使我不確切地知道你想要什麼,你應該檢查出MDI應用程序。

基本上你有一個父窗體與幾個子窗體。如果你的測試完成了,你可以從父窗體調用BringToFront()相應的子窗口。

0

我質疑爲此使用多個表單的要求。大多數應用程序顯示任務的所有信息;進度,測試,錯誤,消息等。在一個窗口中,不是多個窗口。 Web瀏覽器和辦公應用程序是非常複雜的程序,可以在一個窗口中顯示所有任務信息。

,你是想「通過控制」多種形式之間,這一事實使我懷疑使用多窗口是一個不好的設計。現在查看屏幕上的窗口;每一個都是一個獨立的環境,不需要彼此之間「交叉控制」。

如果你試圖讓用戶做一些序列,然後再前往下一個步驟,允許用戶「回到年初」處理錯誤,一個精靈般的設計可能會更好。

爲第一個任務創建一個帶有字段和按鈕的窗體。點擊一個按鈕重新繪製下一個任務的字段和按鈕,按鈕返回或重新開始。這可以比創建一堆單獨的表單並嘗試在它們之間同步數據更容易完成。

+0

謝謝。 我不認爲我把足夠的精力投入到這個設計當中,因爲它不是一個真正的大應用。 我想我會每步一個表格,我認爲這將需要在一個大型複雜的應用程序,使用OOAD? 所有的中間步驟都可以使用相同的形式,在每一步重置以清除前面的步驟消息。 第一種形式需要用戶輸入,他們需要選擇要測試的設備類型,並輸入詳細信息,如序列號和名稱等。 – George 2009-10-11 18:36:56

+0

然後,應用程序將按順序執行所有步驟因爲我們需要跟蹤設備進行相關測試的狀態。 然後最後我需要向用戶提供一個選項來保存和打印信息,然後再進行另一次測試或退出。 Errorrep只是輸出一個相關的消息選項重新開始,從第2步開始或退出。 你可以改變程序中窗口的外觀嗎?第一個窗口會有幾個輸入字段,而其他窗口在同一個地方會有一個大的消息區域,您將如何處理各種按鈕 – George 2009-10-11 18:40:29

+0

關於在應用程序中移動,回到開始,到第2步等等這也很容易在C#中完成? – George 2009-10-11 18:41:06

0

考慮繼承ApplicationContext以在您的應用程序中實現此邏輯。請參閱herehere