想知道是否可以使用类似于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#中等效的是什么?
答案 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消息框已经过优化,即使在非常低的内存条件下也能显示。因此操作系统可以在崩溃或内存不足的情况下显示消息。
如果你搞砸了,就像上面那样,你可能会失去一些健壮性。