c# - 如何将子项从 ListBox 添加到 ListView?
问题描述
列表框中的每个项目都以逗号分隔。通过拆分列表框的每一行,我只能将最后一项(例如 STEVEN、D、E、F)添加到列表框中,但不能将列表框中的其他项添加到 ListView
如何解决?
foreach (string item in listBox2.Items)
{
ListViewItem li = new ListViewItem();
var a = item.Split(',');
li.Text = a[0].Trim();
li.SubItems.Add(a[1].Trim());
li.SubItems.Add(a[2].Trim());
li.SubItems.Add(a[3].Trim());
listView1.Items.Add(li);
}
解决方案
要以这种方式使用ListView,您应该将其View属性设置为Details并添加Columns以在拆分后显示每个字符串项。您不能使用您的代码,因为拆分返回不相等的字符串数组。相反,您可以这样做:
foreach (string a in ListBox1.Items)
{
var arr = a.Replace(" ", "").Split(',');
ListViewItem lvi = new ListViewItem(arr[0]);
for(int i = 1; i < arr.Length;i++)
{
if(i >= ListView1.Columns.Count )
{
ListView1.Columns.Add($"Column {i}");
}
lvi.SubItems.Add(arr[i]);
}
ListView1.Items.Add(lvi);
}
祝你好运。
推荐阅读
- sql-server - SQL Server - 过去 3 天的添加/累积
- mysql - MySQL替换多个字符
- go - 如何在 Golang 中使用 struct 和 map[string]interface{} 之间的反射比较数据
- c# - 如何分配全局初始化事件?
- python - 用 Pandas Series 中的元素填充 Pandas DataFrame 的对角线
- reactjs - Redux 在屏幕之间共享状态以获取异步数据
- c# - 自定义 UserManager 总是返回 null
- foxpro - 如何在vfp中自动填写搜索
- angular - angular - ngx-leaflet 自动集中到有关加载数据的特定区域
- r - ggplot2中带有两个Y轴的多图面线图-添加点并更改线条颜色