2013-06-13 41 views
1

我想知道是它在某種程度上可以保存表單的狀態在C#應用程序後關閉?我試着使用List,並且每當我創建一個Form的實例時,該實例被添加到List,並且它在那裏直到它被刪除。它工作正常,我可以查看,編輯和刪除保存的表單,直到應用程序關閉。所以,考慮到表單不可序列化,是否有機會以某種方式保存List,並稍後加載?保存和載入列表<Form>在C#

+0

您可以保存您的佈局XML並加載當您打開應用了該回來了。 –

+0

我認爲使用XML進行各種設置是非常好的設計。 XML在許多領域得到了應用,並且變得越來越重要。 –

+0

這是一個WinForm嗎?您想要保存哪些控件/表單的屬性? –

回答

2

控制和Form類是不可序列。有一個很好的理由是,他們的財產價值許多都嚴重依賴於程序的執行狀態。像Handle一樣,非常重要但總是不同。 UICues取決於用戶是否按下了Alt鍵。即使是簡單的東西,如位置和大小,依賴於視頻適配器設置和用戶偏好。

你不會希望序列化這些屬性。你想保存的是用於初始化控件的數據。這當然完全取決於你的計劃,根本沒有共同點。因此,您需要創建一個存儲用戶界面狀態的類。你可以根據需要使其可序列化,並選擇你喜歡的方式來實現序列化,有很多方法可以這樣做。在代碼中嚴格地將模型視圖與模型分開,對於在開展這項工作時有一個體面的鏡頭通常非常重要。

+0

好點;然而,在目前的情況下,這並沒有回答OP所提出的問題。他已經知道該表格不是可序列化的,並且正在尋求替代方案。 – Candide

+0

我在第二段專門討論了這個問題。當沒有共同性時,有很多選擇。事實上,他們都會工作。我只能推薦那些重要的東西,以便使其中的任何*易於實現。 –