日期:2014-05-18  浏览次数:21034 次

引用不到对象实例的报错
我尝试将form1类中声明字段tp,获取当前选择的tabpage:

TabPage tp = tabControl1.SelectedTab;

报错:a field initializer cannot reference the nonstatic field method or property;
似乎错误意指对象没有实例化,无法引用其值;
但是form1.designer.cs中已经new过tabControl1了, 是否问题是默认的构造函数未给SelectedTab赋值?

2.为何将这个语句添加到任何form1的方法中,就不会有错误?

感谢。

------解决方案--------------------
C# code
        TabPage tp;
        private void Form1_Load(object sender, EventArgs e)
        {
            tp = tabControl1.SelectedTab;
        }

------解决方案--------------------
a field initializer cannot reference the nonstatic field method or property;
---------------
初始化不能引用一个非静态的方法或属性
------解决方案--------------------
TabPage tp = tabControl1.SelectedTab;这就放到类的局部声明中,这样的话会先于构造函数执行,tabControl1.SelectedTab此时还未创建,当然会出错了
------解决方案--------------------
放在form_load中吧。构造时SelectedTab也是NULL