2008-12-26 49 views

回答

2

您必須以您希望傳遞給的形式聲明公共屬性。然後,實例化新表單後,這是一個簡單的任務:

C#:MyOtherInstantiatedForm.CustomerID = CurrentCustomerID;

你需要圍繞客戶ID傳遞到幾種形式?其他客戶信息如何?如果您提供更多信息,我們可以爲您提供更好的解決方案。

+0

你沒有在OO範例中聲明變量公開,你使用屬性(封裝原則) – zappan 2008-12-26 18:08:30

2

如果客戶ID是公開:

frmTwo.CustomerId = frmOne.CustomerId 
+0

感謝這個信息是非常有用得多,我用它。 – Sarathy 2009-01-17 16:02:22

2

爲了增加吉姆的回答,您可以通過公共屬性或通過形式的構造函數傳遞變量。所以

Form2 frm = new Form2(customerId); 

或像吉姆提供的。有很多方法來獲取價值,如果第二種形式依賴於它,我更喜歡構造函數。

5

這裏要注意的最重要的事情是Form只不過是一個C#類。如果你用這些術語思考一個表格,答案本身可能會跳出來。

本質上,有兩個選項,你有。第一種方法是在表單上公開一個您希望傳遞數據的屬性。如果你的表單不依賴於傳遞的數據,那麼這是一個體面的方法。

CoolForm myForm = new CoolForm(); 

myForm.MyProp = "Hello World"; 
myForm.ShowDialog();

第二個選項是通過構造函數傳遞數據。爲了正常工作,當表單依賴數據時,我更喜歡這種方法。我也傾向於將無參數構造函數標記爲私有的,以確保表單被正確實例化。

CoolForm myForm = new CoolForm("Hello World"); 

myForm.ShowDialog();

希望幫助...

+0

我以前見過的另一種方法是將數據放在窗體上的隱藏控件中,然後讓其他窗體訪問它通過控制的屬性。不是很優雅,但我已經看到它做了很多次。 – 2008-12-26 18:24:59