Bagaimana cara membuat kotak pesan dengan pilihan "Ya", "Tidak" dan DialogResult?


345

Saya ingin membuat Ya / Tidak dipilih MessageBox sederhana, tapi saya pikir itu tidak masuk akal untuk merancang formulir untuk itu. Saya pikir saya bisa menggunakan MessageBox, menambahkan tombol, dll untuk mencapai ini. Ini sederhana, tetapi karena tidak ada DialogResult yang dikembalikan, bagaimana cara mengambil hasilnya?

Jawaban:


791

Ini harus dilakukan:

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

6
Jawabannya adalah untuk Windows, bukan Windows Phone yang saya tidak tahu banyak tentang :)
Mikael Svenson

22
'DialogResult' tidak berfungsi di wpf. Anda harus menggunakan '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;
}

Kelas MessageBox adalah apa yang Anda cari.


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

Ini mengembalikan DialogResult yang dapat Anda periksa.

Sebagai contoh,

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


12

Menggunakan:

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 digunakan pada Windows Phone alih-alih DialogResult ...


6

Anda juga dapat menggunakan varian ini dengan string teks, inilah kode lengkap yang diubah (Kode dari Mikael), diuji dalam C # 2012:

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

Anda bisa setelahnya

.YesNo

masukkan ikon pesan

, MessageBoxIcon.Question

5

@Mikael Jawaban Svenson benar. Saya hanya ingin menambahkan sedikit tambahan ke dalamnya:

Ikon Messagebox juga dapat dimasukkan memiliki properti tambahan seperti di bawah ini:

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
}

Ini akan Meminta kotak pesan seperti ini.


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
}

Lihat lebih detail dari sini


0

Kode sederhana ini berhasil untuk saya. Saya mengambilnya dari MSDN di sini:

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

Coba ini:

if (MessageBox.Show("Are you sure", "Title_here", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
{
    Do something here for 'Yes'...
}
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.