我有一个代码允许用户选择文件并将数据分配到数组中。c#原始错误:对象引用未设置为对象的实例错误
private void Load_data_Click(object sender, EventArgs e)
{
Stream myStream = null;
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.InitialDirectory = "C:\\DataArray";
openFileDialog1.Filter = "txt files (*.txt)|*.txt";
openFileDialog1.FilterIndex = 2;
openFileDialog1.RestoreDirectory = true;
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
try
{
if ((myStream = openFileDialog1.OpenFile()) != null)
{
using (myStream)
{
string filename = openFileDialog1.FileName;
var lineCount = 0;
using (var reader = File.OpenText(@filename))
{
while (reader.ReadLine() != null)
{
lineCount++;
}
for(var count = 0; count < lineCount; ++count)
{
var data = reader.ReadLine().Split(',');
GlobalDataClass.dDataArray[count, 0] = double.Parse(data[0]);
GlobalDataClass.dDataArray[count, 1] = double.Parse(data[1]);
}
ShowGraphData(lineCount);
}
}
}
}
catch (Exception ex)
{
MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message);
}
}
}
一旦赋值,我调用函数showgraphdata绘制zedgraph。
public void ShowGraphData(long lTotalData)
{
double[] dx = new double[lTotalData];
double[] dy = new double[lTotalData];
for (long li = 0; li < lTotalData; li++)
{
dx[li] = GlobalDataClass.dDataArray[li, 0];
dy[li] = GlobalDataClass.dDataArray[li, 1];
}
zedGraphControlStickiness.GraphPane.CurveList.Clear();
GraphPane StickinessPane = zedGraphControlStickiness.GraphPane;
// PointPairList holds the data for plotting, X and Y arrays
PointPairList spl1 = new PointPairList(dx, dy);
// Add cruves to myPane object
LineItem ProductionCurve = StickinessPane.AddCurve("Insertion Force", spl1, Color.Blue, SymbolType.None);
ProductionCurve.Line.Width = 2.0F;
zedGraphControlStickiness.AxisChange();
zedGraphControlStickiness.Invalidate();
zedGraphControlStickiness.Refresh();
GlobalDataClass.iTotalReadingPoint = lTotalData;
}
但是当我执行这个代码,我得到这个错误:“对象引用不设置到对象的实例”
有人可以告诉我哪来我的错误TQ
什么行引发异常? –
不知道在哪一行,因为我可以执行此代码,唯一的情况是当我点击加载数据时它提示错误。 – Ren
你使用Visual Studio吗? –