2013-07-02 43 views
2

使其簡短:兩種形式使用相同的布爾值

表單A和B需要在項目設置中使用布爾值:「booly」。

當按下A形式的按鈕時,變量「booly」被設置爲true。

然後窗體B會顯示出來,並且在關閉的時候,它應該將布爾值設置爲false,但是我無法完成這項工作。對於表單A,它工作得很好,但表單B不會改變變量。下面是B型代碼:

bool booly = Properties.Settings.Default.booly; 

private void formB_FormClosing(object sender, FormClosingEventArgs e) 
{ 
     booly = false; 
} 
+0

是您的布爾全球性的?當您嘗試從表單B設置它時它會拋出編譯錯誤嗎?你是什​​麼意思,它沒有設置它?你在使用Visual Studio嗎?它是否告訴你它可以訪問它?可能有至少100個原因。需要更多細節kimosabi。 –

回答

2

它不工作的原因是因爲你的Form2.booly實例設置爲false,而不是Properties.Settings...。值得一提的是,booly不是指向Properties.Settings.Default.booly如果你來自C++,所以你應該改變你的方法。

private void formB_FormClosing(object sender, FormClosingEventArgs e) 
{ 
    Properties.Settings.Default.booly = false; 
} 

測試,這將是一個簡單的例子/方式:

static void Main(string[] args) 
{ 
    bool valueA = true; 
    bool valueB = valueA; 

    // Both will print TRUE 
    Console.WriteLine("ValueA is: " + valueA.ToString()); 
    Console.WriteLine("ValueB is: " + valueB.ToString()); 

    // Change valueA but leave valueB unchanged 
    valueA = false; 

    // valueA now FALSE while valueB is still TRUE 
    Console.WriteLine("ValueA is: " + valueA.ToString()); 
    Console.WriteLine("ValueB is: " + valueB.ToString()); 
    Console.ReadKey(); 
} 

所以代碼段的最終輸出將是:

Value A is: True 
Value B is: True 
Value A is: False 
Value B is: True 
+0

真的很感激。 –