Reputation: 5409
I'm trying to get the user to confirm if they want to delete a product using a MessageBox and catching its result. This is my code:
// 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");
}
When I run the code and try to delete a product, deleted never shows. On the MSDN page it says to use MessageBoxResult
rather than DialogResult
but Visual Studio doesn't recognise MessageBoxResult
, and I use DialogResult
elsewhere in my code for an open file dialog. Obviously, that's not the proper way to check it.
Upvotes: 2
Views: 8119
Reputation: 4854
You must ask for 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");
}
Upvotes: 6
Reputation: 1095
Just ask for the right DialogResult.
if (result == DialogResult.Yes)
Bear in mind, that a dialog can have different kind of results, and that you are also able to write your own results. Therefore: Have always a look on the result you are expecting and on the result you are checking.
Greetings,
Upvotes: 0
Reputation: 14502
You are using the YesNo buttons, so the DialogResult.OK has nothing to do with it. You should do
if (result == DialogResult.Yes)
for your condition.
Upvotes: 0
Reputation: 1460
You have the message box type set to yes/no, yet you are trying to catch an OK result. Catch the yes and you will be sorted.
Upvotes: 1