"예", "아니오"선택 사항 및 DialogResult로 메시지 상자를 작성하는 방법


345

간단한 예 / 아니오 선택 MessageBox를 만들고 싶지만 양식을 디자인하는 것은 말도 안됩니다. MessageBox를 사용하고 버튼을 추가 하여이 작업을 수행 할 수 있다고 생각했습니다. 간단하지만 DialogResult가 반환되지 않으므로 결과를 어떻게 검색합니까?

답변:


791

이것은해야합니다 :

DialogResult dialogResult = MessageBox.Show("Sure", "Some Title", MessageBoxButtons.YesNo);
if(dialogResult == DialogResult.Yes)
{
    //do something
}
else if (dialogResult == DialogResult.No)
{
    //do something else
}

6
대답은 :) 내가 훨씬에 대해 모르는 윈도우가 아닌 Windows Phone 용이었다
미카엘 Svenson

22
wpf에서 'DialogResult'가 작동하지 않습니다. 'MessageBoxResult'를 사용해야합니다.
matsolof

56
DialogResult dr = MessageBox.Show("Are you happy now?", 
                      "Mood Test", MessageBoxButtons.YesNo);
switch(dr)
{
   case DialogResult.Yes:
      break;
   case DialogResult.No:
      break;
}

MessageBox 클래스는 당신이 찾고있는 것입니다.


32
MessageBox.Show(title, text, messageboxbuttons.yes/no)

확인할 수있는 DialogResult를 반환합니다.

예를 들어

if(MessageBox.Show("","",MessageBoxButtons.YesNo) == DialogResult.Yes)
{
   //do something
}


12

사용하다:

MessageBoxResult m = MessageBox.Show("The file will be saved here.", "File Save", MessageBoxButton.OKCancel);
if(m == m.Yes)
{
    // Do something
}
else if (m == m.No)
{
    // Do something else
}

MessageBoxResult는 DialogResult 대신 Windows Phone에서 사용됩니다 ...


6

이 변형을 텍스트 문자열과 함께 사용할 수도 있습니다. C # 2012에서 테스트 한 완전히 변경된 코드 (Mikael의 코드)는 다음과 같습니다.

// Variable
string MessageBoxTitle = "Some Title";
string MessageBoxContent = "Sure";

DialogResult dialogResult = MessageBox.Show(MessageBoxContent, MessageBoxTitle, MessageBoxButtons.YesNo);
if(dialogResult == DialogResult.Yes)
{
    //do something
}
else if (dialogResult == DialogResult.No)
{
    //do something else
}

당신은 후에 할 수 있습니다

.YesNo

메시지 아이콘을 삽입

, MessageBoxIcon.Question

5

@Mikael Svenson의 답변이 맞습니다. 나는 단지 그것에 작은 추가를 추가하고 싶었다.

Messagebox 아이콘에는 다음과 같은 추가 속성이 포함될 수도 있습니다.

DialogResult dialogResult = MessageBox.Show("Sure", "Please Confirm Your Action", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

2
if (MessageBox.Show("Please confirm before proceed" + "\n" + "Do you want to Continue ?", "Confirm", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)

{
//do something if YES
}

else

{
//do something if NO
}

이와 같은 메시지 상자가 나타납니다.


0
dynamic MsgResult = this.ShowMessageBox("Do you want to cancel all pending changes ?", "Cancel Changes", MessageBoxOption.YesNo);

if (MsgResult == System.Windows.MessageBoxResult.Yes)
{
    enter code here
}
else 
{
    enter code here
}

여기 에서 자세한 내용을 확인 하십시오


0

이 간단한 코드는 저에게 효과적이었습니다. MSDN에서 가져 왔습니다.

https://social.msdn.microsoft.com/Forums/en-US/d1092a96-96b0-4ca4-b716-0c8e55e42ee9/how-can-i-manage-messagebox-result-?forum=Vsexpressvcs

if (System.Windows.Forms.MessageBox.Show
            ("Are you sure you want to add the audit?", "Add",
            System.Windows.Forms.MessageBoxButtons.YesNo, 
            System.Windows.Forms.MessageBoxIcon.Question)
            ==System.Windows.Forms.DialogResult.Yes)                
        // Do stuff after 'YES is clicked'
        else
        // DO stuff after 'NO is clicked'

0

이 시도:

if (MessageBox.Show("Are you sure", "Title_here", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
{
    Do something here for 'Yes'...
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.