2013-07-02 2 views
2

짧게하려면같은 부울로 작업하는 두 가지 양식

양식 A와 B는 프로젝트 설정 : "booly"에서 부울로 작업해야합니다.

버튼을 A 형식으로 누르면 "booly"변수가 true로 설정됩니다.

그러면 양식 B가 표시되고 닫는 동안 부울을 false로 설정해야하지만이 작업을 수행하는 데 문제가 있습니다. 양식 A의 경우 제대로 작동하지만 양식 B는 변수를 변경하지 않습니다. 다음은 폼 B의 코드는 다음과 같습니다 당신이 거짓이 아닌 Properties.Settings...Form2.booly예를 설정되어 있기 때문에 작동하지 않습니다

bool booly = Properties.Settings.Default.booly; 

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

이 부울 글로벌인가? 그것을하려고하면 컴파일 오류가 발생합니까 B 형에서 설정? 그게 그것을 설정하지 않는다는 것은 무엇을 의미합니까? Visual Studio를 사용하고 있습니까? 액세스 할 수 있다고 알려주니까? 100 가지 이상의 이유가있을 수 있습니다. 자세한 내용은 kimosabi가 필요합니다. –

답변

2

이유입니다. 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

정말 감사드립니다. –

관련 문제