1

我正在使用 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
        }
    }

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

编辑:这是使用新应用程序逐步演示问题的步骤:

  1. 如您所见,我使用的是VS2008

在此处输入图像描述

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

在此处输入图像描述

  1. 目标平台:Windows CE - .NET Compact Framework 3.5 版

在此处输入图像描述

  1. 我创建了一个按钮 = button1& 一个标签 =label1

在此处输入图像描述

  1. 这是我输入的代码,但错误仍然存​​在

在此处输入图像描述

4

4 回答 4

1

一个合理的解释是您的目标是 .net 1,对于紧凑的框架,它只有一个方法MessageBox.Show可以接受一个 type 的参数string

.net 2.0 中添加了对您寻求使用的重载的紧凑框架的支持,至少据我从文档中可以看出。

您在评论中声明您使用的是 .net 3.5。在这种情况下,唯一可以得出的合理结论是,它MessageBox必须是System.Windows.Forms.MessageBox.net 3.5 中紧凑框架上的那个类,它具有您想要调用的重载。

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

于 2014-07-14T10:57:03.440 回答
1

你可以尝试这样的事情:

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

资源

于 2014-07-14T10:58:53.930 回答
1

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

你可以使用这个:

DialogResult dialogresult = MessageBox.Show("Are you sure?", "text",
    MessageBoxButtons.YesNo, MessageBoxIcon.None, MessageBoxDefaultButton.Button1);
于 2014-07-14T11:12:55.423 回答
-3

你必须使用System.Windows.Forms

System.Windows.Forms.DialogResult dialogresult = System.Windows.Forms.MessageBox.Show("Are you sure?", "text", System.Windows.Forms.MessageBoxButtons.YesNo);
于 2014-07-14T10:55:45.707 回答