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.Text);
}

下面是调用Form1中AddItemToListBox函数的代码。
以上是Form1中的AddItemToListBox函数。

AddItemToListBox(string a, string b){
listBox1.Items.Add(a);
listBox2.Items.Add(b);
}

但是,这不会将字符串添加到列表框中。没有错误信息或任何东西。 我还尝试声明 2 个公共(public)字符串 STR1 和 STR2

AddItemToListBox(string a, string b){
listBox1.Items.Add(a);
listBox2.Items.Add(b);
STR1 = a;
STR2 = b;
}

但是如果我使用一个按钮来显示 STR1 和 STR2 的值。它们将是 "", String.Empty。显示该值的 MessageBox 中没有显示任何内容。但是,如果我放置 MessageBox.Show(a);和 MessageBox.Show(b);在 AddItemToListBox 函数中,字符串将正确显示,但仍未添加到列表框。

这让我沮丧了大约 2 个小时,我想知道为什么以及如何实际使用该方法将项目添加到列表框(如果可能)。提前致谢。

最佳答案

尝试在这个方法的末尾添加一个 frm.Show()。

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

但我确信这不能解决您的问题。只是告诉您需要引用正确的 Form1。我认为您正在创建 Form1 的新实例,您需要解决正确的问题

关于C# 列表框传递字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11291979/

相关文章:

c# - 使用 MemoryStream 模拟 NetworkStream 以进行单元测试

c# - 为什么不能推断出嵌套的泛型类型?

c# - Retinex算法实现

c# - 每个对象的实例方法是否在内存中重复?

c# - 以编程方式切换屏幕后如何使表单居中

c# - 使用 .NET 的 Web 自动化

c# - 使用使用 NamedPipesBinding 的 WCF 服务获取 PipeException(管道正在关闭)

C# 从 Color 获取所有颜色

c# - 如何在c#中的paypal自适应链式支付系统中使用PaymentAction

c# - 使用线程保持 UI 更新