将列表框的所有项目发送到列表视图的第一列。但是listview是另一种形式
Send All items of listbox to listview's firts column. But listview is in another form
在我的程序中,listbox3 是第一个。我需要将其所有项目发送到另一个名为 "print" 的表格。在打印表单中有一个包含四列的列表视图。我需要用这些项目填充第一列。
Form 1
private void button2_Click(object sender, EventArgs e)
{
print f5 = new print(listBox3.Items);
f5.Show();
}
Form 2
public partial class print : Form
{
public print(ListBox.ObjectCollection list1)
{
string[] row = { list1};
var listViewItem = new ListViewItem(row);
this.listView1.Items.Add(listViewItem);
InitializeComponent();
}
您的问题出现是因为您试图将多个对象(和类型 object
)的整个集合添加为字符串数组的第一个元素。
您需要遍历集合并逐项添加到数组中:
foreach (var listBoxItem in list1)
{
string[] row = { listBoxItem.ToString() };
var listViewItem = new ListViewItem(row);
this.listView1.Items.Add(listViewItem);
}
编辑:
从不 在调用 InitializeComponent();
之前尝试操作控制元素。这个方法完全按照它说的做:它初始化所有 components/control 个元素。
循环必须在这个调用后面:
public print(ListBox.ObjectCollection list1)
{
InitializeComponent();
foreach (var listBoxItem in list1)
{
string[] row = { listBoxItem.ToString() };
var listViewItem = new ListViewItem(row);
this.listView1.Items.Add(listViewItem);
}
}
试试这个代码
foreach (var data in list1)
{
string row= data.ToString();
var listViewItem = new ListViewItem(row);
this.listView1.Items.Add(listViewItem);
}
在我的程序中,listbox3 是第一个。我需要将其所有项目发送到另一个名为 "print" 的表格。在打印表单中有一个包含四列的列表视图。我需要用这些项目填充第一列。
Form 1
private void button2_Click(object sender, EventArgs e)
{
print f5 = new print(listBox3.Items);
f5.Show();
}
Form 2
public partial class print : Form
{
public print(ListBox.ObjectCollection list1)
{
string[] row = { list1};
var listViewItem = new ListViewItem(row);
this.listView1.Items.Add(listViewItem);
InitializeComponent();
}
您的问题出现是因为您试图将多个对象(和类型 object
)的整个集合添加为字符串数组的第一个元素。
您需要遍历集合并逐项添加到数组中:
foreach (var listBoxItem in list1)
{
string[] row = { listBoxItem.ToString() };
var listViewItem = new ListViewItem(row);
this.listView1.Items.Add(listViewItem);
}
编辑:
从不 在调用 InitializeComponent();
之前尝试操作控制元素。这个方法完全按照它说的做:它初始化所有 components/control 个元素。
循环必须在这个调用后面:
public print(ListBox.ObjectCollection list1)
{
InitializeComponent();
foreach (var listBoxItem in list1)
{
string[] row = { listBoxItem.ToString() };
var listViewItem = new ListViewItem(row);
this.listView1.Items.Add(listViewItem);
}
}
试试这个代码
foreach (var data in list1)
{
string row= data.ToString();
var listViewItem = new ListViewItem(row);
this.listView1.Items.Add(listViewItem);
}