“Evet”, “Hayır” seçimleri ve DialogResult içeren bir mesaj kutusunu nasıl oluştururum?


345

Basit Evet / Hayır seçili MessageBox yapmak istiyorum, ama bunun için bir form tasarlamak saçmalık olduğunu düşünüyorum. Bunu gerçekleştirmek için MessageBox, düğme, vb eklemek kullanabilirsiniz düşündüm. Çok basit, ancak döndürülen DialogResult olmadığından sonucu nasıl alabilirim?

Yanıtlar:


791

Bunu yapmalı:

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

6
Bu sorunun cevabı Windows için değil, hakkında pek bir şey bilmediğim Windows Phone için değil :)
Mikael Svenson

22
'DialogResult' wpf içinde çalışmaz. 'MessageBoxResult' kullanmanız gerekir.
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 sınıfı aradığınız şeydir.


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

Bu, kontrol edebileceğiniz bir DialogResult döndürür.

Örneğin,

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


12

kullanın:

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, Windows Phone'da DialogResult yerine kullanılır ...


6

Bu değişkeni metin dizeleriyle de kullanabilirsiniz, C # 2012'de test edilen tüm değiştirilmiş kod (Mikael Kodu):

// 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
}

Sonra yapabilirsin

.YesNo

mesaj simgesi ekle

, MessageBoxIcon.Question

5

@Mikael Svenson'ın cevabı doğru. Sadece küçük bir ek eklemek istedim:

Mesaj kutusu simgesi aşağıdaki gibi ek bir özelliğe de eklenebilir:

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
}

Bunun gibi bir mesaj kutusu ister.


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
}

Buradan daha fazla ayrıntı kontrol edin


0

Bu basit kod benim için çalıştı. Burada MSDN'den yakaladım:

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

Bunu dene:

if (MessageBox.Show("Are you sure", "Title_here", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
{
    Do something here for 'Yes'...
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.