-3
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 温巴坦银行

4

4 回答 4

3

让我们回顾一下这些错误,看看它们是什么意思。

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

这意味着该函数需要一个类型的参数string,但您提供了一个类型的参数System.Windows.Forms.MessageBoxButtons。如果可以将参数转换为 a 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 它有一个重载列表,基本上是所有可能的参数组合的列表。查看名称或描述以找到您想要使用的那个,或者找到与您当前尝试执行的最相似的一个。

于 2013-10-03T10:51:59.883 回答
3

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

MessageBox.Show("Display Text Here", "Box Title Here", MessageBoxButtons.YesNo);
于 2013-10-02T22:04:16.373 回答
0

MessageBox.Show有相对大量的重载,但没有一个只接受 astringMessageBoxButtons作为参数的重载。您可以尝试使用此重载,它需要 2和strings,然后是:textcaptionMessageBoxButtons

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);
}
于 2013-10-02T22:04:21.430 回答
0

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

尝试添加消息框标题:

MessageBox.Show( " Sayin " +txtAdi.Text + txtSoyadi.Text + "  "+ "Kredi Miktari=" + txtMiktar.Text.ToString()+"TL" + Environment.NewLine + "Aylik Odeme=" + nmrVade.Value+"TL",
                 "messageBoxTitle",
                 MessageBoxButtons.YesNo);
于 2013-10-02T22:04:55.433 回答