我只能加载文本框,似乎无法填充列表视图。但是,删除this.textBox1.Text = sr.ReadToEnd();
后,列表视图已填充。这是代码:
using (StreamReader sr = new StreamReader(openFileDialog1.FileName))
{
string line = String.Empty;
this.textBox1.Text = sr.ReadToEnd(); // remove it, listview working
while ((line = sr.ReadLine()) != null)
{
string[] data = line.Split(new char[0]);
ListViewItem item = new ListViewItem
{
Text = data[0]
};
item.SubItems.Add(data[1]);
listView1.Items.Add(item);
}
}
屏幕截图: GCC documentation Img1
答案 0 :(得分:1)
好吧,php-pecl-uopz
会读取文件直到其结尾,这就是sr.ReadToEnd()
毫无用处的原因。
让我们逐行读取文件 并更新ReadLine()
(我们将其分配给text
)和this.textBox1.Text
:
listView1.Items
答案 1 :(得分:0)
您可以使用以下内容。
ReadToEnd这样做:从当前位置到流的末尾读取所有字符。您正在失去流的位置。
using (StreamReader sr = new StreamReader(openFileDialog1.FileName))
{
string line = String.Empty;
StringBuilder sb = new StringBuilder();
// this.textBox1.Text = sr.ReadToEnd(); // remove it, listview working
while ((line = sr.ReadLine()) != null)
{
string[] data = line.Split(new char[0]);
ListViewItem item = new ListViewItem
{
Text = data[0]
};
item.SubItems.Add(data[1]);
listView1.Items.Add(item);
sb.AppendLine(line);
}
this.textBox1.Text = sb.ToString();
}
答案 2 :(得分:0)
您可以尝试以下方法:
string filename = openFileDialog1.FileName;
var lines = File.ReadAllLines(filename);
textBox1.Text = string.Join(Environment.NewLine, lines);
foreach ( string line in lines )
{
var items = line.Split(new char[0]);
if ( items.Length > 0 )
{
var item = new ListViewItem(items[0]);
if ( items.Length > 1 )
item.SubItems.Add(items[1]);
listView1.Items.Add(item);
}
}