我的构造函数有问题。我把它设置成这样:
Form1中:
private void button10_Click(object sender, EventArgs e)
{
var form2 = new Form2(listBox1);
form2.Show();
this.Hide();
}
窗体2:
public Form2(ListBox listBox)
{
InitializeComponent();
listBox1.Items=listBox.Items;
}
我只想将我的数据从Form1上的listBox发送到我的Form2 listBox,但它给了我这个错误:
无法将属性或索引器'System.Windows.Forms.ListBox.Items'分配给它 - 它是只读的。
答案 0 :(得分:2)
listBox.Items
是只读属性。您需要使用listBox.Items.Add() or AddRange()
方法。
//From form1 pass only your listbox items.
private void button10_Click(object sender, EventArgs e)
{
var form2 = new Form2(listBox1.Items);
form2.Show();
this.Hide();
}
//In your form2 you can use AddRange()
public Racun(ListBox.ObjectCollection Items)
{
InitializeComponent();
listBox1.Items.AddRange(items);
}
答案 1 :(得分:2)
您可以使用Sampath的答案,这是完全正确的。但为了便于阅读和缩短代码,您可以使用ListBox.ObjectCollection.AddRange Method:
public Form2(ListBox listBox)
{
InitializeComponent();
listBox1.Items.AddRange(listBox.Items);
}