开发机子: winxp
使用机子:win7
提示这个错误,往高手解答???
这个蛮奇怪的,最好是打印日志,看看到底是那个对象为null。
能说一下具体怎么操作吗?
@sanglei: 有条件的话,直接在Win7上调试。不行的话,就在使用对象的时候,判断下到底哪个为空,然后记录一条日志记录(写文本即可)。
这个错误,看起来是timer的问题,你多关注下这个对象呗。
@幻天芒: 多谢多谢,我再试试看
@sanglei: 加油,祝你好运!
Object reference not set to an instance of an object.
这个错误是最典型的NET错误了。通常发生的情总是类似以下代码
dim myObject as SomeClass (注意,此时myobject是Nothing)
...
...
myOject.name="test" (这句编译是可以过的,但是运行到这儿就出错了)
至于你说的在WINXP下可以,而在WIN7下出错,建议你将你的开发环境在WIN7下安装一个,再调试运行代码,
单步执行是利用断点,你会发现有某个对象,你在使用他的属性或是方法之前,这个对象是空的。
谢谢你的解答,也就是说,保证在使用前,对象要确保已经实例化。?是不是这个意思?
至于定时器,是不是尽量不要用添加控件的方式开发?
直接用timer tr=new timer();?
@sanglei: NET中有三个不同的计时器。简单的应用,不考虑性能方式等问题,你现在可以不管这三个不同的计时器的差别。
本质上,用添加组件的方式或是使用代码,是没有区别的。
注意,可视的称为控件(Control),不可视的称为组件(Component)。
你查看designer这个文件,就会发现你拖进去的组件的代码,
你会发现里面有一句 time tr= new timer();这样的初始化语句的。
我看了你的其他提问,好象你经常只定义对象,而不进行初始化。
典型的.netframework不是下载的。
从官方下载 framework然后再安装,
这个也有区别啊
官方下载正确的.NET FRAMWORK版本
1. 保证.netframework相应版本和支持组件安装正确。
2. 是否需要管理员权限运行,win7中有UAC。
实在不行了也只有写日记或装一个VS调试了
你这里肯定有对象没有实例化 即值为null
貌似和time1本身没有关系,那个一看就是拖到界面上的控件。
是time1_Tick函数体内部有引用没有实例化。
你把time1_Tick函数子内部所有代码注释了试试就知道了。