我正在使用这种方法并且它一直说listView1有项目,即使列表视图中没有出现?
private void button8_Click(object sender, EventArgs e)
{
string filePath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\test.txt";
if (Directory.Exists(filePath))
{
listView1.Items.Clear();
using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read))
{
using (TextReader sr = new StreamReader(fs))
{
string line;
while ((line = sr.ReadLine()) != null)
{
string[] data = line.Split(new char[] { ',' });
ListViewItem lvi = new ListViewItem();
if (listView1.Items.Count > 0)
{
MessageBox.Show("ListViewCount#1: '" + listView1.Items.Count + "'.");
}
lvi.Text = data[0];
lvi.SubItems.Add(data[1]);
lvi.SubItems.Add(data[3]);
lvi.SubItems.Add(data[4]);
lvi.Tag = data[2];
listView1.Items.Add(lvi);
if (listView1.Items.Count > 0)
{
MessageBox.Show("ListViewCount#2: '" + listView1.Items.Count + "'.");
}
}
}
}
if (listView1.Items.Count == 0)
{
MessageBox.Show("ERROR: ListView has no data to show.");
return;
}
}
}
listView1.count在“lvi”部分之后大于0,之前它是空的(在此方法之前和之后使用消息箱计数listView1进行测试),为什么它说“listView1.count为1” “如果所有”数据“都是空的?我已经尝试过其他方法来解决这个问题,在其他方法中使用自定义布尔值,但它只是不实用的回顾它们,我想做的就是如果listview1为0告诉用户没有数据。
答案 0 :(得分:0)
您必须先在代码中初始化listview,以便在以下位置不会出现运行时错误:
listView1.Items.Add(lvi);
listview的实例化将创建一个空的listview,其计数为0,从而传递你的if声明。