C# C Listbox传递字符串

C# C Listbox传递字符串,c#,C#,我似乎在将一些字符串从一种形式传递到另一种形式时遇到问题。 我在Form1上有两个列表框,但我想使用Form2将信息传递到Form1中的列表框中。 在Form2中,我有一个button_Click函数,它使用参数字符串a和字符串b调用Form1中的函数 private void button_Click(object sender, EventArgs e){ Form1 frm = new Form1(); frm.AddItemToListBox(txtBox1.Text,txtBox2.T

我似乎在将一些字符串从一种形式传递到另一种形式时遇到问题。 我在Form1上有两个列表框,但我想使用Form2将信息传递到Form1中的列表框中。 在Form2中,我有一个button_Click函数,它使用参数字符串a和字符串b调用Form1中的函数

private void button_Click(object sender, EventArgs e){
Form1 frm = new Form1();
frm.AddItemToListBox(txtBox1.Text,txtBox2.Text);
}
下面是在Form1中调用函数AddItemToListBox的代码。 上面是表1中的函数AddItemToListBox

AddItemToListBox(string a, string b){
listBox1.Items.Add(a);
listBox2.Items.Add(b);
}
但是,这不会将字符串添加到列表框中。没有错误消息或任何东西。 我还尝试声明了两个公共字符串STR1和STR2

AddItemToListBox(string a, string b){
listBox1.Items.Add(a);
listBox2.Items.Add(b);
STR1 = a;
STR2 = b;
}
但是如果我使用一个按钮来显示STR1和STR2的值。它们将是,String.Empty。显示该值的消息框中没有显示任何内容。但是,如果我放置MessageBox.Showa;和MessageBox.Showb;在AddItemToListBox函数中,字符串将正确显示,但仍不会添加到listbox


这让我沮丧了2个小时,我想知道为什么以及如何在可能的情况下使用该方法将项目添加到列表框中。非常感谢。请尝试在此方法末尾添加frm.Show

private void button_Click(object sender, EventArgs e)
{ 
    Form1 frm = new Form1(); 
    frm.AddItemToListBox(txtBox1.Text,txtBox2.Text); 
    frm.Show();
} 

但我相信这并不能解决你的问题。只是告诉你你需要参考正确的表格1。我认为您正在创建Form1的新实例,您需要处理正确的实例

尝试在该方法末尾添加一个frm.Show

private void button_Click(object sender, EventArgs e)
{ 
    Form1 frm = new Form1(); 
    frm.AddItemToListBox(txtBox1.Text,txtBox2.Text); 
    frm.Show();
} 
Form1 frm = new Form1();
但我相信这并不能解决你的问题。只是告诉你你需要参考正确的表格1。我认为您正在创建Form1的新实例,您需要解决正确的问题

Form1 frm = new Form1();
上述操作将初始化一个新表单,但不会更改Form1的现有实例


上述操作将初始化一个新表单,它不会更改Form1的现有实例。

或者您的输入为空,因此在调用前请先调试Watch txtBox1.Text

frm.AddItemToListBox(txtBox1.Text,txtBox2.Text);
或者表单在添加字符串后不重新绘制。这可以通过使用

listBox1.Invalidate();
listBox2.Invalidate();

在添加字符串之后

您的输入要么是空的,因此在调用前调试watch txtBox1.Text

frm.AddItemToListBox(txtBox1.Text,txtBox2.Text);
或者表单在添加字符串后不重新绘制。这可以通过使用

listBox1.Invalidate();
listBox2.Invalidate();

添加字符串后立即添加字符串

,感谢您的及时回复。成功了。我现在明白了。谢谢你的及时回复。成功了。我现在明白了,谢谢。我现在明白了。有没有办法不初始化新表单?就像从1号桌打电话一样。我现在明白了。有没有办法不初始化新表单?就像从Form1打电话一样