【发布时间】:2017-04-23 07:58:24
【问题描述】:
我创建了一个从文本文件加载 ListView 的方法。但是,问题是我的 ListView 只显示所有其他记录。由于某种原因,它只显示偶数项目...2、4、6等。我需要它来显示所有项目。任何帮助将不胜感激。方法如下……
public partial class Admin : Form
{
const string ITEMSFILE = "items.dat";
const char DELIM = ',';
List<Item> itemList = new List<Item>();
public Admin()
{
InitializeComponent();
load2();
itemsListView.View = View.Details;
itemsListView.Columns.Add("ID");
itemsListView.Columns.Add("Item Name");
itemsListView.Columns.Add("Cost");
itemsListView.Columns.Add("Category");
itemsListView.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
itemsListView.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
}
public void load2()
{
using (FileStream file = new FileStream(ITEMSFILE, FileMode.Open, FileAccess.Read))
using (StreamReader reader = new StreamReader(file))
{
string recordIn;
string[] fields;
string itemline;
itemsListView.Items.Clear();
try
{
while ((itemline = reader.ReadLine()) != null)
{
recordIn = reader.ReadLine();
fields = recordIn.Split(DELIM);
itemsListView.Items.Add(new ListViewItem(new string[] { fields[0], fields[1], fields[2], fields[3] }));
}
}
catch (NullReferenceException)
{
//TODO
}
}
}
}
这是文本文件的内容......
1,Bud light,3.50,Drinks
2,Michelob ultra,3.50,Drinks
3,Heineken,4.00,Drinks
4,Miller lite,3.50,Drinks
5,Busch,2.50,Drinks
6,Pabst,2.50,Drinks
错误输出示例...
更新 - 修订的工作代码 失望我被否决了。这是我修改后的工作代码...
using System;
using static System.Console;
using System.IO;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Collections;
namespace LoadList
{
public partial class Admin : Form
{
const string ITEMSFILE = "items.dat";
const char DELIM = ',';
List<Item> itemList = new List<Item>();
public Admin()
{
InitializeComponent();
load2();
}
public void load2()
{
using (FileStream file = new FileStream(ITEMSFILE, FileMode.Open, FileAccess.Read))
using (StreamReader reader = new StreamReader(file))
{
string recordIn;
string[] fields;
string itemline;
itemsListView.Items.Clear();
while (!reader.EndOfStream)
{
recordIn = reader.ReadLine();
fields = recordIn.Split(DELIM);
itemsListView.Items.Add(new ListViewItem(new string[] { fields[0], fields[1], fields[2], fields[3] }));
}
}
}
}
}
【问题讨论】:
-
catch (NullReferenceException)— 这是什么? -
尝试使用调试器并单步调试您的代码。