Windows表单空白

时间:2012-11-26 14:12:02

标签: c# winforms

任何人都可以看到为什么我的纬度经度和海拔的表格框空白了吗?我一直在找几个小时,看不出原因!

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; } }

    }
}

以上是持有个别点并将其发回的类

3 个答案:

答案 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 标准做法是在数据中加载构造函数。但是,您的代码意味着意图。