如何在C#中创建一个消息框?

23

我刚刚第一次安装了C#,乍一看它似乎和VB6非常相似。我决定从制作一个“Hello, World!” UI版开始。

我在表单设计器中开始制作并创建了一个名为“Click Me!”的按钮,然后双击它并输入:

MessageBox("Hello, World!");

我收到了以下错误:

MessageBox是一个“类型”,但被用作“变量”

很好,看来在C#中,MessageBox是一个对象。我尝试了以下代码:

MessageBox a = new MessageBox("Hello, World!");

我收到了以下错误信息:MessageBox不包含接受'1'个参数的构造函数。

现在我陷入困境,请帮忙。


2
在学习C#的过程中,请记住它的面向对象基础。与js或php不同,你的方法调用通常是method(),而在C#中,你的调用是object.method()。例如:Console.WriteLine()print()相对应。 - Dinah
8个回答

49

MessageBox.Show也返回一个DialogResult,如果你在上面放置了一些按钮,那么就可以让它返回用户点击的内容。通常情况下,我会写出类似这样的代码:

if (MessageBox.Show("Do you want to continue?", "Question", MessageBoxButtons.YesNo) == MessageBoxResult.Yes) {
     //some interesting behaviour here
}

我猜有点笨重,但它能完成工作。

查看https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.dialogresult以获取此处可以使用的其他枚举选项。


26

代码概述:

using System.Windows.Forms;

...

MessageBox.Show( "hello world" );

此外(根据这个Stack帖子):在Visual Studio中展开解决方案树中的项目,在引用上右键单击,添加引用,在Framework选项卡上选择System.Windows.Forms。这将使MessageBox与上面的using System.Windows.Forms引用一起正常工作。


9

这是MessageBox类的一个静态函数,简单实现的方法是使用:

MessageBox.Show("my message");

在System.Windows.Forms类中,您可以找到更多关于这个的信息。在这里。除其他事项外,您可以控制消息框的文本、标题、默认按钮和图标。由于您没有指定,如果您正在尝试在网页中完成这个操作,您应该查看触发javascript alert("my message");或confirm("my question");函数。


6

请尝试以下代码:

MessageBox.Show("Test Information Message", "Caption", MessageBoxButtons.OK, MessageBoxIcon.Information);

请在顶部使用: "using System.Windows.Forms;" - Sagar Dev Timilsina
2
这个问题在2008年已经被提出并回答了,而且还有一个被接受的答案。为什么要重复相同的答案呢? - Rafay Zia Mir
在回答问题时,请告诉提问者为什么这个方法可行而他的代码不行。在这种情况下,您使用了一个静态方法,但他试图创建一个新实例。 - joe
我试图定义一个带有消息、标题、消息按钮和图标的消息框。我在上面没有找到那个特定的答案,所以我认为我的答案会帮助用户。 - Sagar Dev Timilsina

1

另外,您可以使用带有OKCancel选项的MessageBox,但这需要很多代码。 if块用于OKelse块用于Cancel。以下是代码:

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!");
}

您也可以使用带有“是”和“否”选项的 MessageBox
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!");
}

0

我遇到了同样的错误“System.Windows.Forms.MessageBox”是一个“类型”,但被用作“变量”,即使使用:

MessageBox.Show("Hello, World!");

我猜我的初始尝试存在无效语法,导致了某种错误,通过在“MessageBox.Show”和括号()之间添加一个空格来解决它:

MessageBox.Show ("Hello, World!");

现在再次使用原始语法而不带额外的空格即可正常工作:

MessageBox.Show("Hello, World!");

这并没有真正回答问题。如果您有其他问题,可以通过单击“提问”来提出。一旦您拥有足够的声望,您还可以添加悬赏以引起更多关注。 - Anik Islam Abhi
这个回答间接地回答了问题,因为这是解决我的问题的解决方案,因为我遇到了与原帖作者相同的错误。我的问题也是如何在C#中创建消息框,但这里的任何答案都没有解决我的问题。 - KeithJ

0

这是一些你可以放入消息框中的内容。享受吧!
MessageBox.Show("输入消息框的文本",
"输入消息框的名称",
(输入按钮名称,例如MessageBoxButtons.YesNo),
(输入图标,例如MessageBoxIcon.Question),
(输入默认按钮,例如MessageBoxDefaultButton.Button1)

更多信息可以在这里找到。


0
System.Windows.Forms 类中,你可以在 MSDN 页面上找到更多信息。你可以控制消息框的文本、标题、默认按钮和图标等内容。由于你没有指定,在网页中如果要进行此操作,你应该考虑触发 JavaScript 的 alert("my message"); 或者 confirm("my question"); 函数。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接