任何人都可以看到为什么我的纬度经度和海拔的表格框空白了吗?我一直在找几个小时,看不出原因!
namespace DistanceEstimatorFinal
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
dataPoints mydataPoints = new dataPoints();
dataPoint a = mydataPoints.getItem(0);
latTextBox.Text = a.CurLatitude;
longTextbox.Text = a.CurLongtitude;
eleTextBox.Text = a.CurElevation;
}
}
}
以上是我的表格
namespace DistanceEstimatorFinal
{
public class dataPoints
{
List<dataPoint> Points;
public void DataPoints()
{
Points = new List<dataPoint>();
TextReader tr = new StreamReader("c:/users/tom/documents/visual studio 2010/Projects/DistanceCalculator3/DistanceCalculator3/TextFile1.txt");
string input;
while ((input = tr.ReadLine()) != null)
{
string[] bits = input.Split(',');
dataPoint a = new dataPoint(bits[0],bits[1],bits[2]);
Points.Add(a);
}
tr.Close();
}
internal dataPoint getItem(int p)
{
if (p < Points.Count)
{
return Points[p];
}
else
return null;
}
}
}
这是我的点类,它从由逗号分隔的文本文件中绘制点
namespace DistanceEstimatorFinal
{
class dataPoint
{
private string latitude;
private string longtitude;
private string elevation;
public dataPoint(string Latitude, string Longtitude, string Elevation)
{
// TODO: Complete member initialization
this.latitude = Latitude;
this.longtitude = Longtitude;
this.elevation = Elevation;
}
public string CurLongtitude { get { return this.longtitude; } }
public string CurLatitude { get { return this.latitude; } }
public string CurElevation { get { return this.elevation; } }
}
}
以上是持有个别点并将其发回的类
答案 0 :(得分:3)
至少有一个问题是:
namespace DistanceEstimatorFinal
{
public class dataPoints
{
List<dataPoint> Points;
public void DataPoints()
{
...
您的类名为dataPoints
,但您已尝试创建构造函数,但将其称为DataPoints
(注意案例)。创建dataPoints
对象时,此代码将无法运行。
正如Shadow Wizard向导指出的那样,您的构造函数不能具有返回类型。如果你匹配案例,你的编译器会告诉你。
答案 1 :(得分:2)
C#区分大小写,并且具有构造函数的特殊语法。按原样,你所拥有的“构造函数”方法永远不会运行。
正确的代码是:
public class dataPoints
{
List<dataPoint> Points;
public dataPoints()
{
//constructor code here...
}
}
如您所见,构造函数也不能具有返回类型。
答案 2 :(得分:2)
textBox1_TextChanged
仅在最终用户更改文本框时调用。您的代码似乎表明您要初始化文本框。
我建议覆盖OnLoad方法,然后设置文本框。类似的东西:
protected override OnLoad()
{
dataPoints mydataPoints = new dataPoints();
dataPoint a = mydataPoints.getItem(0);
latTextBox.Text = a.CurLatitude;
longTextbox.Text = a.CurLongtitude;
eleTextBox.Text = a.CurElevation;
}
我还没有查看剩下的代码。但这是第一个要解决的问题。
我假设新的dataPoints()将读入您感兴趣的任何数据。 NOT 标准做法是在数据中加载构造函数。但是,您的代码意味着意图。