其实我不知道该怎么称呼,但我仍会尽力解释我的问题。
我在桌面C:\ users \ Dell \ partition.txt上保存了一个文本文件。它的数据如下
Number Start End Size File system Name Flags 1 524kB 3670kB 3146kB proinfo 2 3670kB 8913kB 5243kB nvram 3 8913kB 19.4MB 10.5MB ext4 protect1 4 19.4MB 29.9MB 10.5MB ext4 protect2 5 29.9MB 30.4MB 524kB lk 6 30.4MB 30.9MB 524kB para 7 30.9MB 47.7MB 16.8MB boot 8 47.7MB 64.5MB 16.8MB recovery 9 64.5MB 72.9MB 8389kB logo 10 72.9MB 73.9MB 1049kB yl_params
我想在C#Winforms中的ListView上显示它,以获得这样的输出
我见过一些软件在做这件事,但没找到他们的来源。那么在C#Winforms中有没有办法做到这一点。
先谢谢,
答案 0 :(得分:-1)
您需要的不是ListView。该控件是一个DataGridView,您需要的是将一个标签分隔的CSV文件加载到它上面。你可以使用这样的东西:
private DataTable GetDataTableFromCsv(string path, bool isFirstRowHeader)
{
string header = isFirstRowHeader ? "Yes" : "No";
string pathOnly = Path.GetDirectoryName(path);
string fileName = Path.GetFileName(path);
string sql = @"SELECT * FROM [" + fileName + "]";
using(OleDbConnection connection = new OleDbConnection(
@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathOnly +
";Extended Properties=\"Text;HDR=" + header + "\""))
using(OleDbCommand command = new OleDbCommand(sql, connection))
using(OleDbDataAdapter adapter = new OleDbDataAdapter(command))
{
DataTable dataTable = new DataTable();
dataTable.Locale = CultureInfo.CurrentCulture;
adapter.Fill(dataTable);
return dataTable;
}
}
然后当你需要加载DataGridView时,只需这样调用它:
YourDataGridView.AutoGenerateColumns = true;
YourDataGridView.DataSource = GetDataTableFromCsv("C:\users\Dell\partition.txt", true);