2014-09-01 53 views
1

我爲下面顯示的問題準備了一張圖片。 enter image description here類中的數據依賴關係

現在我會告訴你我想要什麼。正如你所看到的,我有三種形式。

  • Form1中得到了一些數據(如int,字符串,結構,陣列 - 這並不重要)從類
  • Form1中打開窗體2
  • 窗體2打開Form3

現在我想要從Form1訪問Form1中的數據。這裏是我的問題:如何創建這些表單的對象。我有一個問題要獲得他們之間的正確數據依賴。 我沒有代碼,因爲我只創建一個像這樣的Dim f2 As Form2 = New Form2()這樣的新表單實例,然後從Form2:Dim f3 As Form3 = New Form3() 然後在Form3中,我這樣做:Dim f1 As Form1 = New Form1()並且我無法訪問Form1中的數據。

+1

這個班可以負責所有這些。而不是從一個類中「獲取數據」的形式,該類可以創建表單,顯示錶單並將所需數據推送到表單。當需要form2時,它也是由類創建,顯示和管理的。etc表單最適合用戶輸入沙盒而非程序控制元素 – Plutonix 2014-09-01 12:07:31

回答

1

您可以重寫構造爲您Form2Form3採取的參數 - 特別是你可以從Form1使包含數據數組,然後通過傳遞數組Form2Form3

這是通過在Form2Form3後面的代碼中創建一個Public Sub New方法來完成的,其簽名包含要傳遞的數據類型。

您需要將傳遞的數據分配給構造函數中的私有變量,以便您可以在新窗體上使用其他方法引用它。

+0

只需添加。您可能想要在Form2和Form3中的類級別聲明私有變量,然後使用傳入重寫構造函數的值設置它們。這將使它們可用於Form2和Form3中的其他方法。 – ChrisG 2014-09-01 15:29:11

+0

@ChrisG非常真實。我之前在表單設計中使用過這種方法。我會編輯它。 – Psychemaster 2014-09-01 15:30:22

+0

你覺得這個怎麼樣?在'Form1'中:'Dim f2 As Form2'和構造函數中:'f2 = New Form2(Me)'。接下來在Form2中:Dim f1 As Form1在構造函數中(它接受Form1類型的參數稱爲窗體):f1 = form。在'Form3'中:'Dim f2 As Form2'和構造函數中(也有Form2類型的參數稱爲窗體):'f2 = form'。然後我可以在'Form3'中使用這個訪問:'f2.f1.data'。這個怎麼樣,這是正確的嗎? – XardasLord 2014-09-02 06:12:59