我是Visual Studio的新手,我使用Form1和另一個窗體Form2創建了一個項目。窗體2將這段代碼打開:在主窗體中更改變量(Winform c#)
Form2 form = new Form2(); form.Show();
當我單擊窗體2一個按鈕我想在我的Form1以改變一個變量。是否有捷徑可尋?
我是Visual Studio的新手,我使用Form1和另一個窗體Form2創建了一個項目。窗體2將這段代碼打開:在主窗體中更改變量(Winform c#)
Form2 form = new Form2(); form.Show();
當我單擊窗體2一個按鈕我想在我的Form1以改變一個變量。是否有捷徑可尋?
假設Form1中是單個實例,可以將變量聲明爲在Form 1代碼公共靜態
public static int MyVariable;
則可以內窗體2訪問它象下面這樣:
Form1.MyVariable = 5;
在Form2
構造函數:
public Form2(Form1 fm)
{
this.Fm = fm;
}
並在Form1
中調用它,如下所示:
Form2 form = new Form2(this);
form.Show();
如果Form1不是單個實例,這很有用。
您沒有提及「Fm」是什麼,並且用戶想要修改的變量不能設置爲私有。另一個選擇是使用靜態變量。 –
'Fm'是窗體。認爲它是由這行'Form1 fm'推斷出來的,它告訴我們我們有一個名爲'fm'的Form1',它是與之相同的約定btn和txt的縮寫。所以,'this.Fm'與'fm'的名字相同,所以可以認爲它是'Form1',考慮到我們正在通過這種類型。而且,即使使用靜態變量,用戶仍然僅限於公共數據。 – AustinWBryan
並不意味着它是什麼,而是你聲明它的地方。如此,您將得到一個編譯器錯誤,指出Fm不存在。 –
您可以在Form1
中創建一個靜態變量,這是您需要更改的變量。讓它成爲int x
例如
public static int x= 0;
那裏必須Form1
然後在函數內部的按鈕,點擊可以定義在Form2
行:
Form1.x = //value;
與@Ramazan Binarbasi的回答有何不同? –
哦,這不是......我剛剛看到他的評論。 –
不知道爲什麼有人-1這個答案。 +1,因爲這是完全正確的。 –