2016-09-14 53 views
-1

C#的新手;多年來一直是VB.NET/VBA開發人員。我目前正在爲我們的非現場工作人員提供申請。我有一個帶有項目編號下拉的主交換機表格。然後用戶可以打開各種基於表單的工具,以包含預算表單。在更改下拉列表時,我存儲了一個程序範圍的類變量cJob,它具有多個屬性(客戶,位置等)。在預算窗體的公開:具有唯一變量的WinForms多實例窗體

Form frm = new FieldBudgets.frmBudgets().Show(); 

我有一個私人靜態cJob實例叫做meJob(new cJob)。 返回配電盤時,用戶在不關閉預算的實例的情況下,可以打開選定不同項目編號的同一預算表格的其他實例。

這是我的問題(對不起,花了這麼長時間纔到這裏): 刷新按鈕可以更新預算表單上的數據,但是來自最後一個實例的新的meJob信息會被傳送到另一個實例。我怎樣才能保持這些獨立?我認爲新的meJob會堅持個人實例。另外,我確實有一個不夠迷人的「解決方案」,它涉及隱藏的文本框並在刷新時重新加載新的meJob。如果這是最好的解決辦法,我得到了,這樣吧......

MJ

+0

您可以使您的子表單成爲具有主窗體類作用域的Dictionary ,並通過單擊按鈕引用該鍵。 –

回答

-1
Dictionary<string,FieldBudgets.frmBudgets> myBudgets = new Dictionary<string,FieldBudgets.frmBudgets>(); 
myBudgets.Add("Budget1",New FieldBudgets.frmBudgets()); 
myBudgets.Add("Budget2",New FieldBudgets.frmBudgets()); 
myBudgets.Add("Budget3",New FieldBudgets.frmBudgets()); 
myBudgets.Add("Budget4",New FieldBudgets.frmBudgets()); 

myBudgets["Budget2"].Show(); 

你可以把任何獨特的字段和/或屬性在構造函數frmBudgets。

+0

不熟悉字典(谷歌學習),但我沒有遵循這個建議。 frmBudgets上的meJob實例如何轉換爲Dictionary項目?爲什麼frmBudgets的個別實例「不記得」它的特定身份? –

+0

Dictionary是一種同時打開同一對象的多個實例並可以通過鍵(可以是字符串,int或任何您想要的唯一項)訪問的方法。這比創建MyForm1,myForm2,myForm3等更容易。 –

+0

好的,字典的概念是有道理的。然而,如果字典在調用頁面上被保存並且實現,那麼不知道這與字典「頁面」如何知道它是自己的內容有關。 –

相關問題