带有DialogResult的C#MessageBox给出“方法'没有重载'显示'需要'3'参数”

时间:2014-07-14 10:50:32

标签: c# visual-studio-2008 compact-framework messagebox dialogresult

我正在使用Visual Studio 2008开发Windows CE应用程序。

代码:

    private void cmdLogOn_Click(object sender, EventArgs e)
      {
        if (loginStatus == false)
        {
            DialogResult dialogresult = MessageBox.Show("Are you sure?", "text", MessageBoxButtons.YesNo);
            if (dialogresult == DialogResult.Yes)
            {
                //Do Stuff;
            }
        }
        else
        {
            //Do stuff
        }
    }

我收到错误:“没有重载方法'显示'需要'3'参数”。知道为什么吗?

编辑:以下是使用新应用程序演示此问题的一步一步:

  1. 如您所见,我使用的是VS2008
  2. enter image description here

    2.Visual C#>智能设备项目

    enter image description here

    1. 目标平台:Windows CE - .NET Compact Framework版本3.5
    2. enter image description here

      1. 我创建了一个按钮= button1&标签= label1
      2. enter image description here

        1. 以下是我输入的代码,但错误仍然存​​在
        2. enter image description here

4 个答案:

答案 0 :(得分:1)

一个合理的解释是你正在瞄准.net 1,对于紧凑的框架,它只有一个single MessageBox.Show method that accepts a single parameter of type string

支持compact framework for the overload that you seek to use was added in .net 2.0,至少从文档中可以看出。

您在评论中说明您使用的是.net 3.5。在这种情况下,唯一合理的结论是MessageBox必须是System.Windows.Forms.MessageBox之外的其他内容,因为紧凑框架上的.net 3.5中的类具有您要调用的重载。

最后,@ CathalMF断言紧凑框架中不存在重载。也许文档是错的!

答案 1 :(得分:1)

您可以尝试这样的事情:

MessageBox.Show("my text", "title", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation, 
    MessageBoxDefaultButton.Button1);

Source

答案 2 :(得分:1)

简单的答案是在.NET Compact框架中,没有重载需要3个参数,正如错误所说。

您可以使用:

DialogResult dialogresult = MessageBox.Show("Are you sure?", "text",
    MessageBoxButtons.YesNo, MessageBoxIcon.None, MessageBoxDefaultButton.Button1);

答案 3 :(得分:-2)

您必须使用System.Windows.Forms

System.Windows.Forms.DialogResult dialogresult = System.Windows.Forms.MessageBox.Show("Are you sure?", "text", System.Windows.Forms.MessageBoxButtons.YesNo);