使用自定义按钮在C#中创建消息框

时间:2012-11-21 15:27:31

标签: c# winforms

想知道是否可以使用类似于java中showOptionDialog实现的自定义按钮创建MessageBox?

String[]colors = {"Red", "Green", "Blue"};
int color = JOptionPane.showOptionDialog(null, "Please choose color", "Color please", 0, JOptionPane.INFORMATION_MESSAGE,null, colors, colors[0]);
if(color == 0)
{
  JOptionPane.showMessageDialog(null, "Red it is");
}

在C#中等效的是什么?

3 个答案:

答案 0 :(得分:5)

我担心答案是:你不能。

据我所知,没有办法改变MessageBox。您需要编写自己的对话框(并不难)。

可能MessageBox类最后会进行WinApi调用,这可能是主要原因。

答案 1 :(得分:0)

我认为你不能。 messagebox类只有私有构造函数,因此您无法从中派生。但是,正如SoMoS已经写过的那样,您可以使用Windows窗体及其showdialog()方法创建自己的自定义消息框。希望它有所帮助

答案 2 :(得分:0)

我认为这可以满足您的需求:

http://snipplr.com/view/14245/custom-messagebox-buttons/

以下是类似的方法,在C ++中,但有更多解释:

http://www.codeproject.com/Articles/10037/How-to-change-the-MessageBox-window-Add-controls-a

注意:请注意,WinApi消息框已经过优化,即使在非常低的内存条件下也能显示。因此操作系统可以在崩溃或内存不足的情况下显示消息。

如果你搞砸了,就像上面那样,你可能会失去一些健壮性。