首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

VB6.0对象变量声明为command1时出错解决方法

2012-01-02 
VB6.0对象变量声明为command1时出错VB实用教程上提到,可以定义对象变量,举例如下:dimformVariableasform1d

VB6.0对象变量声明为command1时出错
VB实用教程上提到,可以定义对象变量,举例如下:
dim   formVariable   as   form1
dim   buttonVariable   as   command1
dim   textVariable   as   textbox

我把以上三条语句输入VB,运行后:
第一、三条语句没有出错,第二条语句报错:编译错误,用户定义类型未定义。
http://www.moon-soft.com/program/bbs/readelite5824.htm     此帖子说,可以用控件名作为对象变量的类型
1.我不明白form1和command1有什么本质区别吗?不都是一个控件的名称吗?为什么form1就不报错?

2.教材上说:“对象类型包括:对象名称(name属性),控件集合(control,textbox),窗体集合,屏幕对象等。“我不理解的是   对象名称   怎么能作为   对象类型。因为对象变量是:把一个变量声明成一种对象类型,然后对这个变量操作就是对所有这类对象操作。所以我可以理解dim   textVariable   as   textbox;因为textbox是代表一种对象的类型。而dim   buttonVariable   as   command1,我就没法理解。command1是具体到的某一个对象,而不是某一类对象。我如果执行“buttonVarible.caption=按钮”这条语句,到底是哪些控件的caption属性变成了“按钮”两字?是所有的CommandButton类型的控件的caption属性都改成了 "   按钮 "   吗?

3.如果要把第二条语句修改正确,如何更改?


[解决办法]
声明对象变量的As后,只能是类名而不能是类的实例,VB中的Form很特殊,每个窗体都是一个私有类,这也是容易让初学者混淆的地方。
commandbutton才是类名,command1只是其一个实例,不能用于声明。
[解决办法]
1、按照面向对象的方法可以这么理解。
Form跟Form1都是类,相当于Form1继承了Form,所以第一条语句正确。
Command1是由CommandButton类实例化的一个对象而不是类,所以第二条语句错误。
TextBox也是类,所以第三条语句正确。

如果对VB中的类不少很了解,可以察看对象浏览器。

2、你看得教材因该是比较糟糕的,建议读MSDN文档。

3、dim buttonVariable as CommandButton

热点排行