Messagebox function show error - c#

In my Windows application, I want to when ever user try to delete a row from datagridview then there should be a open a messagebox, asking user to confirm the deletion of that row.
For this purpose I have written this code:
DialogResult res = MessageBox.Show("Are You Sure", MessageBoxButtons.OKCancel);
and check the user user response but this line shows error.
What is wrong with this code?
Please help me.
When I write only this code
MessageBox.Show("Are You Sure");
then it is working fine, but I want to confirm the user again so I want his response.

You are almost there! If you want to specify MessageBoxButtons you need to add a title as well as a caption (or message text) in this manner:
MessageBox.Show(string, string, MessageBoxButtons);
Completed, your code should look something like this:
DialogResult res = MessageBox.Show("Are you sure?", "Title", MessageBoxButtons.OKCancel);
You are getting the error, because your debugger is expecting a string for a Title and is receiving MessageBoxButtons instead. Read this article for a detailed explanation.

According to the MessageBox API There is no method overload for Show(String, MessageBoxButtons)
I think you want
Show(String, String, MessageBoxButtons)

Use the MessageBoxResult instead:
MessageBoxResult res= MessageBox.Show("Are You Sure",MessageBoxButtons.OKCancel);

Related

I cannot get the messagebox to work in the C# code

I am trying to add a confirmation messagebox in C# code and the examples I have found and I have added the below example but I keep getting error message "The name 'MessageBox' does not exist in the current context" I am pretty new to C# and need help as I need a confirmation message for the user of the page.
I have tried adding the Using system.windows.form to see if that resolves the messagebox issue but so far no luck
const string message = "Are you sure that you would like to close the form?";
const string caption = "Form Closing";
var result = MessageBox.Show(message, caption,
MessageBoxButtons.YesNo,
MessageBoxIcon.Question);
// If the no button was pressed ...
if (result == DialogResult.No)
{
// cancel the closure of the form.
e.Cancel = true;
}
Based on a compare I will perform, I will need this messagebox to prompt and ask the user if they are sure they want to continue or not and if not it is to return to the page, if so then the new code executes.
In the Solution Explorer: Right Click your Project -> Add -> Reference... -> Assemblies -> In the top right is a searchbar, enter "Forms" -> System.Windows.Forms -> OK
You are missing adding references to the System.Windows.Forms dll. Please add the references and using statement.

How to create a dialog for use by an Excel AddIn?

I am familiar with the basics of Excel AddIns, but have no idea how to design, implement and later display an internal dialog.
See standing question with images here:
https://social.msdn.microsoft.com/Forums/en-US/935ebeae-1b88-4609-ba33-b0e522d2797f/how-to-create-a-dialog-for-use-by-an-excel-addin?forum=exceldev
TIA
Notes:
(1) My programming language is C#
(2) I prefer to design dialogs by drawing them.
You can use the MessageBox class, for example:
const string message =
"Are you sure that you would like to close the form?";
const string caption = "Form Closing";
var result = MessageBox.Show(message, caption,
MessageBoxButtons.YesNo,
MessageBoxIcon.Question);
// If the no button was pressed ...
if (result == DialogResult.No)
{
// cancel the closure of the form.
e.Cancel = true;
}
If you want to customize the dialog window on your own, you can add a new Windows Form to the project and then add the required controls. After creating an instance of the form in the code you may show it using the Show or ShowDialog methods.

Open button on Messagebox

I have a WinForms application, and when it is finished running, displays a message box with just an OK button.
Is it possible to have an OPEN button on the message box too?
I found this code online:
public static DialogResult Show(string text, string caption, MessageBoxButtons buttons);
But it only gives basic commands, like Yes / No, OK / Cancel, etc. It doesn't show any open button.
I want to OPEN a text file after my program has finished running.
Any help would be greatly appreciated.
No, you can't have any other values in a message box rather than the default, the MessageBoxButtons is predefined enum and you can't add to it. The solution is either use some custom message box, check this, or implement your own MessageBoxForm and add your custom settings to it, check this.
The MessageBox.Show methods exposes serval overloads. You can use one of them as you like. To invoke a MessageBox, simply execute following line:
MessageBox.Show("Hi");
For information you can find on MSDN.

DialogResult in WPF Application

I am currently developing an application in C# using WPF, I have always only used WinForms. Normally if I want to ask the user a question instead of making my own dialogue I use
DialogResult result = MessageBox.Show(
"My Message Question", "My Title", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
This is the first time that I have used a WPF form and DialogResult does not seem to be available. What do I use to get the same effect?
Here is how you do the same in WPF:
MessageBoxResult result = MessageBox.Show("My Message Question", "My Title", MessageBoxButton.YesNo, MessageBoxImage.Question);
if (result == MessageBoxResult.Yes)
{
// Do this
}
Use MessageBoxResult instead. And use the MessageBox class. But this message box will look pretty ugly "classic" style.
Another option would be to use Extended WPF toolkit
Yet another option would be to go here and download CrossTechnologySamples.exe then look into the VistaBridge project. I recommend you give a good look here because you will find other samples for other dialogs (like FileOpen, FileSave etc.) that do not exist by default in WPF.

How do I create a MessageBox in C#?

I have just installed C# for the first time, and at first glance it appears to be very similar to VB6. I decided to start off by trying to make a 'Hello, World!' UI Edition.
I started in the Form Designer and made a button named "Click Me!" proceeded to double-click it and typed in
MessageBox("Hello, World!");
I received the following error:
MessageBox is a 'type' but used as a 'variable'
Fair enough, it seems in C# MessageBox is an Object. I tried the following
MessageBox a = new MessageBox("Hello, World!");
I received the following error:
MessageBox does not contain a constructor that takes '1' arguments
Now I am stumped. Please help.
MessageBox.Show also returns a DialogResult, which if you put some buttons on there, means you can have it returned what the user clicked. Most of the time I write something like
if (MessageBox.Show("Do you want to continue?", "Question", MessageBoxButtons.YesNo) == MessageBoxResult.Yes) {
//some interesting behaviour here
}
which I guess is a bit unwieldy but it gets the job done.
See https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.dialogresult for additional enum options you can use here.
Code summary:
using System.Windows.Forms;
...
MessageBox.Show( "hello world" );
Also (as per this other stack post): In Visual Studio expand the project in Solution Tree, right click on References, Add Reference, Select System.Windows.Forms on Framework tab. This will get the MessageBox working in conjunction with the using System.Windows.Forms reference from above.
It is a static function on the MessageBox class, the simple way to do this is using
MessageBox.Show("my message");
in the System.Windows.Forms class. You can find more on the msdn page for this here . Among other things you can control the message box text, title, default button, and icons. Since you didn't specify, if you are trying to do this in a webpage you should look at triggering the javascript alert("my message"); or confirm("my question"); functions.
Try below code:
MessageBox.Show("Test Information Message", "Caption", MessageBoxButtons.OK, MessageBoxIcon.Information);
Also you can use a MessageBox with OKCancel options, but it requires many codes.
The if block is for OK, the else block is for Cancel. Here is the code:
if (MessageBox.Show("Are you sure you want to do this?", "Question", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
{
MessageBox.Show("You pressed OK!");
}
else
{
MessageBox.Show("You pressed Cancel!");
}
You can also use a MessageBox with YesNo options:
if (MessageBox.Show("Are you sure want to doing this?", "Question", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
MessageBox.Show("You are pressed Yes!");
}
else
{
MessageBox.Show("You are pressed No!");
}
In the System.Windows.Forms class, you can find more on the MSDN page for this here. Among other things you can control the message box text, title, default button, and icons. Since you didn't specify, if you are trying to do this in a webpage you should look at triggering the javascript alert("my message"); or confirm("my question"); functions.
This is some of the things you can put into a message box. Enjoy
MessageBox.Show("Enter the text for the message box",
"Enter the name of the message box",
(Enter the button names e.g. MessageBoxButtons.YesNo),
(Enter the icon e.g. MessageBoxIcon.Question),
(Enter the default button e.g. MessageBoxDefaultButton.Button1)
More information can be found here
I got the same error 'System.Windows.Forms.MessageBox' is a 'type' but is used like a 'variable', even if using:
MessageBox.Show("Hello, World!");
I guess my initial attempts with invalid syntax caused some kind of bug and I ended up fixing it by adding a space between "MessageBox.Show" and the brackets ():
MessageBox.Show ("Hello, World!");
Now using the original syntax without the extra space works again:
MessageBox.Show("Hello, World!");

Categories

Resources