C# 无法将文本传递给其他表单列表框

C# 无法将文本传递给其他表单列表框,c#,winforms,listbox,C#,Winforms,Listbox,我正在尝试将一个值从我的表单3的textbox1传递到我的表单1的列表框 以下是表格3的代码: private void button1_Click(object sender, EventArgs e) { Form1 f1 = new Form1(textBox1.Text); f1.Show(); } 以下是表格1中的内容: public partial class Form1 : Form { public Form1(string something)

我正在尝试将一个值从我的表单3的textbox1传递到我的
表单1的
列表框

以下是表格3的代码:

private void button1_Click(object sender, EventArgs e)
{
    Form1 f1 = new Form1(textBox1.Text);
    f1.Show();
}
以下是表格1中的内容:

public partial class Form1 : Form
{
    public Form1(string something)
    {
        InitializeComponent();
        listBox1.Items.Add(something);       

    }
错误是:

Form1'不包含接受0个参数的构造函数


提前感谢您的帮助

您应该查看此错误的来源()。我猜想您的代码中有一行使用无参数构造函数,如:

Form1 foo = new Form1();
或者,即使它是起始形式:

Application.Run(new Form1());
您应该重载构造函数,而不是简单地更改它,因为它是自动生成的,很可能它已经在某个地方使用过了。只需添加第二个构造函数:

public partial class Form1 : Form
{
    public Form()
    {
        InitializeComponent();
    }

    public Form(string something)
    {
        InitializeComponent();
        listBox.Items.Add(something);
    }
}
编辑:

正在尝试将值从我的form3的textbox1传递到我的form1的listbox

这是一个稍微不同的问题,然后你的错误建议放在首位。建议采用不同的方法。构造函数是无用的,因为它将创建一个不同的实例/对象,这与您在屏幕上看到的不一样!换句话说,所有元素都会失去它们的值

许多解决方案之一是创建一个方法,将项目添加到类
Form1
中的
ListBox

public void AddItemToListBox(string s)
{
    listBox.Items.Add(something);
}
并通过
Form2
将当前窗口
Form1
的实例传递到
Form3

在类型为
Form1

public Form1 temp_form1;
在类Form1中调用
Form2
时,将起始窗口
Form1
的实例传递给变量
temp\u Form1

Form2 form2 = new Form2();
form2.temp_form1 = this; // "this" stands for the instance of the current object
Form3 form3 = new Form3();
form3.temp_form1 = this.temp_form1;
temp_form1.AddItemToListBox("yourstring");
当您在类Form2中调用它时,对
Form3
也同样适用:

Form2 form2 = new Form2();
form2.temp_form1 = this; // "this" stands for the instance of the current object
Form3 form3 = new Form3();
form3.temp_form1 = this.temp_form1;
temp_form1.AddItemToListBox("yourstring");
最后,只需调用方法更新类Form3中的列表框:

Form2 form2 = new Form2();
form2.temp_form1 = this; // "this" stands for the instance of the current object
Form3 form3 = new Form3();
form3.temp_form1 = this.temp_form1;
temp_form1.AddItemToListBox("yourstring");

不要删除表单的默认构造函数,将其保留在那里,然后添加另一个自定义参数

public Form1()
{
    //Default constructor
    InitializeComponent();     
}

public Form1(string something)
{
    //Your custom constructor
    InitializeComponent();
    listBox1.Items.Add(something);       
}

您最好将代码和错误添加为文本-这样,当显示问题时,无法将其放入搜索和/或正确阅读。。您是否尝试添加一个无参数构造函数?它开始工作,但我收到另一条错误消息。我想用其他表单中的项目填充表单上的列表框。欢迎来到StackOverflow。您可以使用帖子下方的按钮添加信息。现在到底是什么问题?如果需要帮助,您需要发布更多代码。请不要发布代码截图。我会试试这个。我是新来的,如何在此评论框中添加代码行?谢谢你的快速帮助我有这行代码:Form1 foo=new Form1();但是如果没有这个,如何在另一个表单中调用表单呢?@RobertRimai我试图让我的帖子更清楚一些。过得怎么样?成功地将您的数据发送到起始窗口?提前谢谢,我很快会检查它,但现在我非常累。我不得不放弃多表单函数。我将扩大我的知识面,很快就会回来。我很高兴,你们这些人特别是Mong Zhu在一秒钟内帮助我解决了我的问题。非常感谢。但是我又有一个问题。当开始一个新游戏时,它会覆盖列表框的内容,而不是添加另一个名称。我想包含列表框的高分,排序。提前谢谢!对不起,我也要谢谢你。我真的很累,时间紧迫。我很高兴在地球上有像你这样的人。但是为什么它不将项目添加到列表框中,它总是覆盖第一行。我需要列表框来显示高分和姓名并进行排序。请提供帮助。@RobertRimai当您开始一个新游戏时,您是如何做到的?`?在form3中输入玩家名称后,它会将名称传递到form1列表框。隐藏form3,并再次显示form1。从form1开始,我开始了一个新游戏,由form2展示。ty.您确定每次都不创建新的
表单1
?你看过我答案的第二部分了吗?