【问题标题】:overloaded method match has some invalid arguments重载的方法匹配有一些无效的参数
【发布时间】:2012-10-19 17:00:47
【问题描述】:

我不断收到此错误 - HomeInventory2.Form1.Form1(System.Collections.Generic.IEnumerable) 的最佳重载方法匹配有一些无效参数 - 对于星号部分。同时,我在同一个地方也遇到了这个错误 - 参数 1:无法从“字符串”转换为 System.Collections.Generic.IEnumerable

**对不起 - 我应该补充一下,代码将字符串发送到另一个表单,在那里它被拆分并放入单独的文本框中。

namespace HomeInventory2
{
    public partial class Form2 : Form
    {
        OpenFileDialog openFileDialog1 = new OpenFileDialog();
        public Form2()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, System.EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                richTextBox1.LoadFile(openFileDialog1.FileName, RichTextBoxStreamType.RichText);
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Application.Run**(new Form1(richTextBox1.Text))**;
        }
    }
}

【问题讨论】:

  • 一般来说,当您提出问题时,如果您要包括您期望或希望发生的事情,这会有所帮助。目前尚不完全清楚(除了查看您之前的问题)您从代码中的目标是什么。这将帮助每个人为您提供更好的答案。
  • 您正在将一个字符串传递给 Form1 的构造函数,但它抱怨您只有一个带有 IEnumerable 的 Form1 的带参数构造函数。

标签: c#


【解决方案1】:

首先,您可能不想在这里致电Application.Run - 您已经有一个表格。

我怀疑您想按行拆分富文本框内容,然后将其传递给新表单并显示它。如果是这种情况,您可以这样做:

    private void button2_Click(object sender, EventArgs e)
    {
        // richTextBox1.Lines is a string[], which works with IEnumerable<string> (per line)
        var form = new Form1(richTextBox1.Lines);
        // Just show the form
        form.Show(); 
    }

【讨论】:

    猜你喜欢
    • 2013-01-07
    • 2015-10-14
    • 2018-07-14
    • 1970-01-01
    • 2014-04-14
    • 2012-12-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多