2012-07-16 3 views
3

작업이 실행되는 동안 사용자에게 메시지를 표시하려고합니다. 메시지에는 아무 버튼도 표시되지 않습니다. 그냥 메시지 (텍스트)와 배경 이미지 일 수 있습니다.C# 단추가없는 메시지 상자를 표시하는 방법

문제는 다음

  • 메시지 박스가 좋은 컨트롤을 것 같다 (때문에 버튼과 차단 실행중인 프로세스)하지 않습니다.
  • Form.ShowDialog()도 실행중인 프로세스를 차단합니다. 나는 무엇을해야할지 모른다.
  • 메시지를 표시하고 내 프로세스를 실행하며 프로세스가 완료되면 메시지를 처리하고 싶습니다.

C#에서 이것을 수행하는 방법은 무엇입니까?

답변

2

하는 사용자 지정 양식을 만들고, 쓰기 자신의 행동

6

을 메시지와 함께 간단한 양식을 작성 (또는 공공 재산을에 전달하는 메시지 또는 메시지 매개 변수가있는 생성자를 변경 할 수 있도록 노출)와 쇼 양식은 this Show overload입니다. 그런 다음 (원본) (전체) 원본 양식을 사용 중지하거나 액세스 할 수 없도록하려는 컨트롤을 비활성화하십시오.

그래서, 당신의 "주"형태로이 작업을 수행 : 또한

Form f = new MessageForm(); 
f.Show(this);   //Make sure we're the owner 
this.Enabled = false; //Disable ourselves 
//Do processing here 
this.Enabled = true; //We're done, enable ourselves 
f.Close();   //Dispose message form 

BackgroundWorker을 사용하는 것이 좋습니다.

0

최소한의 스타일 등으로 사용자 정의 양식을 작성하십시오. 프로세스가 완료되면 언제든지 프로세스 참조를 전달하고 매시간 점검하여 말하십시오.

0

할 수있는 한 가지 방법은 완료 될 때 이벤트를 발생시키는 작업자 클래스를 만드는 것입니다.

새 테드에서 작업자 클래스를 실행하여 백 그라운드를 실행합니다.

"완료된"이벤트에 대한 이벤트 처리기로 닫는 방법으로 모달 폼을 만듭니다. 이렇게하면 UI가 여전히 작동하고 응답하며 작업 스레드가 완료되면 양식이 닫힙니다.

관련 문제