2009-12-19 4 views
0

양식에서 전역 변수로 선언하고 응용 프로그램에서 해당 변수를 사용하고 싶습니다. 나는 아래의 메소드를 사용하여 앱 양식에 액세스하고 싶지 않습니다.글로벌 양식 선언

Form1 myForm = new Form1(); 

누구나 알 수 있나요?

감사

+0

왜 안 되니? _______ – Nifle

+1

아이디어가 있습니다. 그러지 마. 전역 변수는 악합니다. – Marek

+1

달성하려는 목표는 무엇입니까? 전체 양식을 글로벌하게 만드는 것보다 더 좋은 방법 일 것입니다. – keyboardP

답변

3

양식을 Singleton으로 만들고 싶습니다. 이것은 내가 좋아하는 패턴이 아니지만 글로벌 패턴보다 우수합니다.

+0

양식을 숨기거나 닫지 않는 한 싱글 톤이 수행합니다. 그러나 실제로, 세계보다 낫다. –

+0

헨크 말이 맞습니다. 닫기를 호출하면 양식이 삭제 될 것이므로 다시 표시하려면 다시 작성해야한다는 것을 의미합니다. 이는 싱글 톤의 목적을 무효화합니다. 나는 전체 아이디어가 좋지 않을 수도 있음을 시사하는 다른 포스터에 동의하지만 좋은 이유가 있다면 할 수 있습니다. –

0

내 방법은 정적 변수를 Form1이 정적 클래스를 선언한다.

public static class Global 
{ 
    private static Form1 myForm = new Form1(); 
    public static bool Show() 
    { 

     myForm.Show(); 
    } 

    public static bool Hide() 
    { 
     myForm.Close(); 
    } 
} 

좋지 않니?

+0

그렇지 않습니다. 이 코드는 사용자가 양식을 닫을 때 폭탄을 터뜨립니다. 사용자가 양식을 닫지 못하게하면 영구 메모리 누출이됩니다. 왜 이것을 필요로합니까? –

+0

Close()는 양식을 삭제하기 때문에 절대 호출하지 않아야합니다. –

+0

nobugz : 내가 원할 때마다 내가 보여주기/숨기기 Form1을 원하기 때문에 필요하다. 제이슨 : 고마워, 나는 숨기기 위해 바뀌었다. – Sadegh