[英]How to align csv file values in listview columns when there is a default value in listview control
[英]How to align csv file values into listview columns
如何将csv文件中的值对齐到我的listview控件中...我使用的代码中的问题是,每个csv值仅添加在第一列中...
这是我的示例listview输出:
第一个“ 1234”需要与“ asd”对齐,但在第二列“ p”上
那么第二个“ 1234”需要与“ dfg”对齐,但在第二列“ p”上
asd | 1234
dfg | 1234
“ |” 符号仅表示两个值之间的列表视图控件中的边框...造成误解。
这是我到目前为止构建的代码...
try
{
string delimiter = ",";
string tablename = "medTable";
DataSet dataset = new DataSet();
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();
String[] strArray = csv.Split(new char[] { ',' });
foreach (string strValue in strArray)
{
listView1.Items.Add(strValue);
}
}
else
{
}
}
}
catch (Exception ek)
{
}
我知道这里有很多大师很乐于助人...谢谢
尝试用此块替换foreach语句
int i = 0;
string val = string.Empty;
foreach (string strValue in strArray)
{
val += strValue + " ";
i++;
if (i == 2)
{
listView1.Items.Add(val);
i = 0;
val = string.Empty;
}
}
希望对您有帮助
编辑要将项目添加到您已发布的图片中显示的2列中,请使用它,我希望它能正常工作
int i = 0;
ListViewItem item = new ListViewItem();
foreach (string strValue in strArray)
{
i++;
if (i == 1)
{
item = new ListViewItem();
item.Text = strValue;
}
if (i == 2)
{
item.SubItems.Add(strValue);
listView1.Items.Add(item);
i = 0;
}
}
您要为第二个值创建一个SubItem
吗? 确保ListView
有两Columns
,并且在Details
视图中。
listView1.View = View.Details;
listView1.Columns.Add("header1");
listView1.Columns.Add("header2");
尽管我希望设计师这样做。.现在,您可以填充它:
using System.IO;
//..
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);
}
您可能要在访问部件阵列之前添加错误检查!
关于使用SubItems
集合的注释:以后访问它时, SubItem[1]
是第二列, SubItem[0]
是第一列,您实际上已将其添加为Item
!
如果您只是想将两个值串联在一起,则可以将我的代码更改为:
var lines = File.ReadAllLines(filename);
foreach (string line in lines)
{
var parts = line.Split(',');
listView1.Items.Add(parts[0] + " - " + parts[1]);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.