为什么我的MessageBox.Show会生成有关参数和重载的错误?

时间:2013-10-02 22:00:47

标签: c# string messagebox

private void btnKaydet_Click(object sender, EventArgs e)
{
    MessageBox.Show(" Sayin " + txtAdi.Text + txtSoyadi.Text
        + "  " + "Kredi Miktari=" + txtMiktar.Text.ToString() + "TL"
        + Environment.NewLine + "Aylik Odeme=" + nmrVade.Value + "TL",
        MessageBoxButtons.YesNo
        );
}

如何解决这2个错误?

  

错误2参数2:无法从'System.Windows.Forms.MessageBoxButtons'转换为'string'C:\ Users \ LEVENT \ Desktop \ bilge adam \ week1_day3 \ WinBatanBank \ WinBatanBank \ Form1.cs 23 189 WinBatanBank

     

错误1'System.Windows.Forms.MessageBox.Show(string,string)'的最佳重载方法匹配包含一些无效参数C:\ Users \ LEVENT \ Desktop \ bilge adam \ week1_day3 \ WinBatanBank \ WinBatanBank \ Form1 .cs 23 13 WinBatanBank

4 个答案:

答案 0 :(得分:3)

1和2)MessageBox没有(string,MessageBoxButtons)的重载。您需要使用重载(字符串文本,字符串标题,MessageBoxButtons按钮)

MessageBox.Show("Display Text Here", "Box Title Here", MessageBoxButtons.YesNo);

答案 1 :(得分:3)

让我们回顾一下错误,看看它们的意思。

  

错误2参数2:无法从'System.Windows.Forms.MessageBoxButtons'转换为'string'

这意味着该函数需要string类型的参数,但您提供了类型为System.Windows.Forms.MessageBoxButtons的参数。如果可以将参数转换为string,则不会出现此错误。所以这可以通过提供string来解决。

  

错误1'System.Windows.Forms.MessageBox.Show(string,string)'的最佳重载方法匹配有一些无效的参数

这意味着您对该功能的调用不正确。你可能有多个错误,比如第一个错误(多个参数不正确),你也会得到一个像这样的错误。这意味着编译器认为您要提供两个string参数,但看起来您还没有这样做。

在Visual Studio中,当您键入代码时,通常会得到一个包含建议的小框。这是IntelliSense功能。如果您仔细阅读该框,您将看到需要提供的内容作为下一个参数。

另一种选择是查看官方文档。如果您使用自己喜欢的搜索引擎搜索 msdn messagebox.show ,您将很快找到指向http://msdn.microsoft.com/en-us/library/system.windows.forms.messagebox.show.aspx的链接 它有一个重载列表,它基本上是所有可能参数组合的列表。查看名称或说明以找到您要使用的名称或说明,或找到与您目前正在尝试的名称最相似的名称或说明。

答案 2 :(得分:0)

MessageBox.Show具有相对大量的重载,但没有一个仅将stringMessageBoxButtons作为参数。您可以尝试使用this overload,其中包含stringstextcaption,然后是MessageBoxButtons

private void btnKaydet_Click(object sender, EventArgs e)
{
    MessageBox.Show(
        " Sayin " +txtAdi.Text + txtSoyadi.Text + "  "+ "Kredi Miktari=" + txtMiktar.Text.ToString()+"TL" + Environment.NewLine + "Aylik Odeme=" + nmrVade.Value+"TL", 
        "Some Caption", 
        MessageBoxButtons.YesNo);
}

答案 3 :(得分:0)

您使用了错误的数量/参数组合。

尝试添加消息框标题:

MessageBox.Show( " Sayin " +txtAdi.Text + txtSoyadi.Text + "  "+ "Kredi Miktari=" + txtMiktar.Text.ToString()+"TL" + Environment.NewLine + "Aylik Odeme=" + nmrVade.Value+"TL",
                 "messageBoxTitle",
                 MessageBoxButtons.YesNo);