消息框不显示使用MessageBoxButton.Show(字符串,字符串,按钮)

时间:2016-01-06 17:41:53

标签: c# vba messagebox

我已经为System.Windows.Form设置了参考设置,而且我不确定我错过了什么。我需要的是当我在信息路径表单上更改视图时显示消息框,显示确定/取消和两个字符串?

using Microsoft.Office.InfoPath;
using System;
using System.Windows.Forms;
using System.Xml;
using System.Xml.XPath;


namespace Form1
{
    public sealed class MessageBox
    {
     static public void Show(string input1, string input2, MessageBoxButtons button) { }
    } 

   public partial class FormCode
   {



          public void InternalStartup()
          {}

          public void FormEvents_ViewSwitched(object sender,   ViewSwitchedEventArgs e)
              {
                string string1 = "Error";
                string string2 = "Empty field found on form";
                MessageBoxButtons button = MessageBoxButtons.OKCancel;
                MessageBox.Show(string1, string2, button);
              }
      }

}

2 个答案:

答案 0 :(得分:0)

删除您自己的 MessageBox 类。

public sealed class MessageBox
{
    static public void Show(string input1, string input2, MessageBoxButtons button) { }
}

它的 Show 方法不包含任何实现,也不允许您调用WinForms中实现的MessageBox.Show方法。

答案 1 :(得分:0)

其他人已经指出了解决方案,实现了show方法。您可能还会考虑使用一个特殊类型的包装器向用户显示如下所示的对话框,其中包含硬编码按钮,并且按钮设置为默认值为no或cancel按钮。最后,在使用它们时,我们只是要求真或假,而不是对话结果,至少对我来说是更清晰的代码。

对于函数名称QuestionOkayCancel来说并不是很疯狂,但这里的命名是为了让任何人都能阅读这个想法而且很多人肯定会更改函数名称是我的猜测。

using System.Windows.Forms;
namespace Windowspplication1_cs
{
    public static class SpecialMyDialogs
    {
        public static bool Question(string Text)
        {
            return (MessageBox.Show(Text, "Question", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes);
        }
        public static bool Question(string Text, string Title)
        {
            return (MessageBox.Show(Text, Title, MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes);
        }
        public static bool QuestionOkayCancel(string Text)
        {
            return (MessageBox.Show(Text, "Question", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes);
        }
        public static bool QuestionOkayCancel(string Text, string Title)
        {
            return (MessageBox.Show(Text, Title, MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes);
        }
    }
}