2011-07-26 5 views
-2

내 VS-2008 Windows 응용 프로그램에서 진행률 막대가있는 팝업 양식을 표시하려고합니다. 백그라운드에서 실행되는 클래스는 진행률 막대 값을 직접 전달해야합니다. 인스턴스를 작성하지 않고 이름을 입력하여이 양식에 직접 액세스 할 수 있기를 바랍니다.응용 프로그램을 통해 양식에 전체적으로 액세스 가능하게 만들기

Dialog에 액세스 가능한 역할 속성을 설정하면 맨 위에 표시되어 사용자의 작업을 방해합니다. 이 양식을 화면의 일부 구석에서 실행하고 MDI 폼의 자식으로 나타나야하지만 직접 액세스 할 수 있어야합니다.

+0

Winforms 또는 WPF? 너 뭐 해봤 니? –

+0

@Kyle "Form"이라는 단어를 사용하는 것은 WinForms를 나타내는 것으로 보입니다. –

+0

충분합니다. :) –

답변

2

http://en.wikipedia.org/wiki/Singleton_pattern

가장 간단한 방법은 전체 클래스가 정적 확인하고 정적 모든 인스턴스 변수와 메소드를 변경하는 것입니다. 그런 다음 클래스 이름별로 메서드를 호출 할 수 있습니다. MyFormClass.UpdateProgress(2);

이렇게하면 클래스의 단일 비 정적 인스턴스를 어딘가에 저장하고 액세스를 제어하는 ​​것을 선호하는 사람들 (저를 포함하여)은보기 흉합니다. 제어 객체/메소드를 통해 그 의견 중 상당 부분이 C# 구현 - 걱정없는 프로그래밍의 세계에서 합법적인지는 잘 모르겠습니다.

또한 백그라운드 스레드에서 진행률 막대를 업데이트하려는 경우 winforms는 스레드 세이프가 아닙니다.

관련 문제