2009-10-09 3 views
1

예 아니오를 사용하여 MessageBox를 열면 오른쪽 상단의 (일반적으로) 취소 십자 기호가 표시되지만 아무 효과가 없습니다.예 x 버튼이 클릭되었을 때 MessageBox가 닫히지 않습니다

System.Windows.MessageBox.Show("Really, really?", "Are you sure?", MessageBoxButton.YesNo); 

옵션으로 YesNoCancel을 제공하는 경우 DialogResult를 사용하여 대화 상자를 닫으면 취소됩니다.

System.Windows.MessageBox.Show("Really, really?", "Are you sure?", MessageBoxButton.YesNoCancel); 

나는 십자가가 전혀 보이지 않을 경우 십자가가 "보이지 않는다"는 것을 기대했을 것입니다. 아마 나는 이것을 관찰 한 첫 번째 사람이 아닙니다. 이 버튼을 숨기거나 사용하지 않도록 설정하는 가장 좋은 방법은 무엇입니까?

참고 : WPF 프로젝트를 다루고 있으며 가능한 경우 InterOp를 피하기 위해 System.Windows.Forms를 사용하지 않는 솔루션을 선호합니다.

답변

7

MsgBox의 제목 표시 줄에있는 닫기 단추 : MsgBox 창은 운영 체제의 기본 제공 기능이므로 X 단추는 특정 단추가있는 경우에만 사용할 수 있습니다. OK 버튼 만있는 경우 X 버튼을 클릭하는 것은 OK를 누르는 것과 같습니다. 그렇지 않으면 취소 버튼이없는 경우 X 버튼을 사용할 수 없으며 X를 클릭하는 것은 취소를 누르는 것과 같습니다.

http://www.autohotkey.com/docs/commands/MsgBox.htm

그것의 기본 동작! MsgBox에서부터 MessageBox에 이르기까지!

+0

설명해 주셔서 감사합니다. 적어도 X가 효과가있을 때와 그렇지 않을 때를 알고 있습니다. 이제 X를 숨기거나 스타일을 지정하여 응답하지 않아도 사용자가 여러 번 클릭 할 때 혼란스럽지 않게해야합니다. –

+0

답변으로 표시되었는데, 이유는 무엇이 바뀌 었는지에 대한 멋진 해결책이 없더라도 적어도 대답이 되었기 때문입니다. –

+0

@ 시몬 D : 환영합니다! – ioWint

2

자신의 MessageBox 클래스 회전에 대해 설명하는 CodeProject article을 확인하십시오. 닫기 버튼을 사용 중지하는 방법에 대한 섹션이 있습니다.

+0

고맙습니다. 흥미로운 기사입니다. 사실, 전체 MessageBox를 교체 할 필요가없는 솔루션을 기대하고 있습니다. 이 기사는 System.Windows.Forms.MessageBox를 다루는 것으로 보이는데, 순수 WPF 프로젝트에서는 피하려고한다. (나는 이것을 질문에 추가 할 것이다.) 그래도 다른 방법이 없다면이 MessageBoxExtension을 사용하거나 WinForms가 아닌 일부 MessageBox 확장 프로그램에 기능을 전송할 생각입니다. –

+0

몇 년 동안 매우 일반적인 요구 사항은 MessageBox를 사용자 정의 할 수 있다는 것입니다. 닫기 버튼을 제거/비활성화하거나 버튼을 사용자 정의하는 것입니다. 불행히도 Microsoft는 개발자가 상당히 간단한 API 인 것처럼 보이는 것을 제어 할 수있는 적합성을 보지 못했습니다. –

0

탐색기에서 파일을 삭제할 때 (휴지통 속성에서 삭제 확인을 선택한 경우) 메시지 상자가 나타나고 "이 x 항목을 휴지통으로 옮기겠습니까?"라는 메시지가 나타납니다. 캡션 "삭제 확인"과 오른쪽 구석에 X가 있습니다. 이스케이프도 작동합니다. 사용 가능한 버튼은 "예"및 "아니오"입니다. 우리는 이것을 어떻게 할 수 있습니까?

Microsoft가 지침을 따르지 않거나 개발자가 사용할 수 없도록 설정하지 않았습니다.

관련 문제