我是C#的新手,我需要能夠訪問從Form1到Form2的聲明變量。變量示例:從Form1到From2的變量訪問
decimal Total = 0.00M;
用戶輸入項目時總數會增加。
我需要Form2從Form1訪問變量Total
一旦用戶完成輸入項目,並且一旦用戶選擇支付方法我可以在Form2中爲零Total
。
我該怎麼做?
我是C#的新手,我需要能夠訪問從Form1到Form2的聲明變量。變量示例:從Form1到From2的變量訪問
decimal Total = 0.00M;
用戶輸入項目時總數會增加。
我需要Form2從Form1訪問變量Total
一旦用戶完成輸入項目,並且一旦用戶選擇支付方法我可以在Form2中爲零Total
。
我該怎麼做?
如果Form1具有對Form2的引用,則可以將其作爲變量進行訪問。就像這樣:
public class Form1
{
public decimal Total {get; set;}
}
public class Form2
{
public Form2()
{
var form1 = new Form1();
form1.Show();
..later, after use has done some work and you need the variable
var total = form1.Total;
}
}
在另一個類或其中一個類中創建一個靜態變量。一切都可以訪問靜態變量。你需要使變量通用/靜態。我就是這麼做的。
我不知道該怎麼做。我已經多次讀過關於班級的內容,但仍然不明白。 – ajaustin12 2012-02-23 04:19:57
你有Form1類。添加一個變量,如「public static int Total {get; set;}。在Form2中,發生了一些事情:Form1.Total ++。因此,Form1的Total字段發生了變化 – iefpw 2012-02-23 04:21:41
感謝您的澄清。變量/類 – ajaustin12 2012-02-23 04:23:28
您可以通過Form1以您的窗體2(如果你需要更多的變量):
public class Form2
{
public Form1 form1 { get; set; };
}
我想你應該從Form1中調用Form2的,所以你可以這樣做這樣的:
public class Form1
{
private void callForm2()
{
Form2 form2 = new Form2();
form2.form1 = this;
form2.Show();
}
}
我不建議使用靜態變量,因爲他們可以給你的情況下,有些問題你有超過1 Form1的在應用程序中打開。
@ ajaustin12我想說你可以有兩個或更多的Form1,Form2或FormX實例,並且你應該控制實際顯示的表單實例(及其變量)用戶。 – 2012-02-23 04:34:49
謝謝。我失去的唯一的東西是如何以及在哪裏創建類?現在已經很晚了,所以我現在很難跟上。 – ajaustin12 2012-02-23 04:37:10
@ ajaustin12我將編輯我的帖子,提供有關Windows窗體操作的更多信息。順便說一下,請告訴我你的Visual Studio版本和。你正在使用的網絡框架,所以我可以發佈更好的答案。 – 2012-02-23 04:40:54
像這樣的這種情況的最佳方式是創建第三個類,它代表以這兩種形式處理的操作的上下文。您可以保留您需要在該課程中共享的所有狀態,並將其作爲參數從形式傳遞給表單。或者應用Singleton模式,這將允許從您擁有的所有表單訪問狀態。
+1顯示此問題的另一個場景以及正確的解決方案。 – 2012-02-23 04:28:08
@Steven P您的文章對我有一些幫助。在您的示例中,您是否創建了'public class Form1 {public decimal Total {get; set; }}'MSVS創建的程序中的任何地方? – ajaustin12 2012-02-23 04:29:59
@Steven P什麼是技術術語或方法名稱,以便我可以做更多的研究? – ajaustin12 2012-02-23 04:40:26