C# 当listview控件中有默认值时,如何对齐listview列中的csv文件值
因此,当我将csv文件导入listview控件时,我的对齐有问题 这就是问题所在: listview控件中的default值是Mark和Joe。 当我上传csv文件时,它会从第一列开始在下一行插入值 正确的输出需要如下所示: csv值需要与默认值Mark和Joe对齐 注意:我的虚拟csv文件中的值为: 建筑署,1234 dfg,1234 这是我到目前为止构建的代码C# 当listview控件中有默认值时,如何对齐listview列中的csv文件值,c#,C#,因此,当我将csv文件导入listview控件时,我的对齐有问题 这就是问题所在: listview控件中的default值是Mark和Joe。 当我上传csv文件时,它会从第一列开始在下一行插入值 正确的输出需要如下所示: csv值需要与默认值Mark和Joe对齐 注意:我的虚拟csv文件中的值为: 建筑署,1234 dfg,1234 这是我到目前为止构建的代码 OpenFileDialog openFileDialog1 = new OpenFileDialog(); openFileDia
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.Filter = "CSV Files (*.csv)|*.csv|All Files (*.*)|*.*";
openFileDialog1.FilterIndex = 1;
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
if (MessageBox.Show("Are you sure you want to import the data from \n " + openFileDialog1.FileName + "?", "Are you sure?", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
filename = openFileDialog1.FileName;
StreamReader sr = new StreamReader(filename);
string csv = File.ReadAllText(openFileDialog1.FileName);
sr.Close();
var lines = File.ReadAllLines(filename);
foreach (string line in lines)
{
var parts = line.Split(',');
ListViewItem lvi = new ListViewItem(parts[0]);
lvi.SubItems.Add(parts[1]);
listView1.Items.Add(lvi);
}
}
else
{
}
}
感谢那些愿意帮助我解决简单问题的专家 您确实需要修改现有项而不是添加新项,一个选项可以是跟踪索引并使用该索引获取项并将子项添加到该ListViewItem
注意:您应该在索引周围添加一些错误检查,或者如果csv包含的行数比ListViewItems多,则可能会出现IndexOutOfRangeException,您可以只获取默认行数并添加额外的子项,而不是创建新的ListViewItem。我也是这么想的,但我有点不知所措,不知道该怎么做。谢谢你的解释。我按照您的指示添加了一个错误检查代码。再次感谢。
int index = 0;
var lines = File.ReadAllLines("");
foreach (string line in lines)
{
var parts = line.Split(',');
// TODO: check if the item at index exists first
var existingItem = listView1.Items[index];
existingItem.SubItems.Add(parts[0]);
existingItem.SubItems.Add(parts[1]);
index++;
}