2012-03-27 50 views
1

我試圖讓用戶確認他們是否想要使用MessageBox刪除產品並捕獲其結果。這是我的代碼:捕獲MessageBox結果

// Confirm if the user really wants to delete the product 
DialogResult result = MessageBox.Show("Do you really want to delete the product \"" + productName + "\"?", "Confirm product deletion", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); 
if (result == DialogResult.OK) 
{ 
    MessageBox.Show("deleted"); 
} 

當我運行的代碼,並嘗試刪除產品,被刪除從不顯露。在MSDN頁面上它使用MessageBoxResult而不是DialogResult,但Visual Studio不能識別MessageBoxResult,而我在我的代碼的其他地方使用DialogResult打開文件對話框。顯然,這不是檢查它的正確方法。

回答

6

你必須要求DialogResult.Yes

// Confirm if the user really wants to delete the product 
DialogResult result = MessageBox.Show("Do you really want to delete the product \"" +  productName + "\"?", "Confirm product deletion", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); 
if (result == DialogResult.Yes) 
{ 
    MessageBox.Show("deleted"); 
} 
1

你有消息框類型設置爲是/否,但你正在試圖趕上一個確定的結果。趕上是的,你會被排序。

0

您正在使用YesNo按鈕,因此DialogResult.OK與它無關。 您應該做的

if (result == DialogResult.Yes) 

爲您的條件。

0

只需詢問正確的DialogResult即可。

if (result == DialogResult.Yes) 

請記住,對話框可以有不同類型的結果,並且您也可以編寫自己的結果。因此:請始終查看您期待的結果和您檢查的結果。

問候,