有两个combobox控件??

sym1978 2003-12-10 03:52:40
我VB6控件面版上有两个combobox控件,
上面的称ACbo(上方的)
下面的称BCbo
我有做一个过程

public sub aa(cbo as combobox)
afdasfasdfdfasf
end sub

为什么用A控件可以调用aa(ACbo)
用BCbo一调用aa(BCbo)就出错
...全文
64 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
zyl910 2003-12-11
  • 打赏
  • 举报
回复
解决办法:
定义为object型,避免类型检查


sub aa(cbo as object)
msgbox cbo.text
ens sub


zyl910 2003-12-11
  • 打赏
  • 举报
回复
回复人: sym1978(爱新) ( ) 信誉:87 2003-12-10 17:13:00 得分:0


为什么呀,那个控件比较我参数呀!


========================================================

虽然它们都叫ComboBox
它们不是同一个控件
即 不是同一个类,接口不同
编译器自然会汇报错

真不知道MicroSoft是怎么想的
一方面故意把VB设定为弱类型检查
一方面为了在COM中能存在同名的类,别出心裁的提出了什么GUID的标示办法
更本没考虑到初学者会乱用
SoHo_Andy 2003-12-11
  • 打赏
  • 举报
回复
这样就解决了,将combobox 改为 control 类型

Private Sub Command1_Click()
aa ComboBox1
End Sub

Private Sub Form_Load()
ComboBox1.AddItem "呵呵"
End Sub
Sub aa(cbo As Control)
MsgBox ComboBox1.Text
End Sub
northwolves 2003-12-10
  • 打赏
  • 举报
回复
应该这样引用:

Private Sub Command1_Click()

msgbcbo Me.ComboBox1
End Sub



Private Sub Command2_Click()
msgacbo Me.Combo1
End Sub

Private Sub Form_Load()
For i = 1 To 10
Combo1.AddItem i
ComboBox1.AddItem i
Next
End Sub

Sub msgacbo(ByVal ctl As ComboBox) 'acbo
MsgBox ctl.AutoTab ' 必定出错:VB 之COMBOBOX无此功能
End Sub
Sub msgbcbo(ByVal ctl As msforms.ComboBox) 'bcbo
MsgBox ctl.AutoTab ' true or false
End Sub
sym1978 2003-12-10
  • 打赏
  • 举报
回复
为什么呀,那个控件比较我参数呀!
lxcc 2003-12-10
  • 打赏
  • 举报
回复
最好不用Bcbo
lxcc 2003-12-10
  • 打赏
  • 举报
回复
两个combobox不是同一类型,不能作为参数传递
sym1978 2003-12-10
  • 打赏
  • 举报
回复
ACbo为我们普通的combobox
Bcbo为Form 2.0 的Combobox

两个都为Combobox

我在写过程时
public sub aa(cbo as combobox)
asdfsaf
end sub
Acbo可以用aa(acbo
但Bcbo就不能调用aa(bcbo

我想用Bcbo因为他的属性比较多,怎么解决!
sym1978 2003-12-10
  • 打赏
  • 举报
回复
我是说ACbo跟BCbo的虽然是从控件面版上不同COMBOBOX拉下来的!
lxcc 2003-12-10
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
dealCombo Combo1
dealCombo Combo2
End Sub

Private Sub dealCombo(combo As ComboBox)
MsgBox combo.ListCount
End Sub

Private Sub Form_Load()
Combo1.AddItem "asda"
Combo1.AddItem "asda"
Combo1.AddItem "asda"
Combo1.AddItem "asda"
Combo1.AddItem "asda"
Combo1.AddItem "asda"
Combo1.AddItem "asda"

Combo2.AddItem "asda"
Combo2.AddItem "asda"
Combo2.AddItem "asda"
Combo2.AddItem "asda"
Combo2.AddItem "asda"
End Sub
SoHo_Andy 2003-12-10
  • 打赏
  • 举报
回复
调试通过
你自己看看

Public Sub aa(cbo As ComboBox)
MsgBox cbo.name
End Sub
Private Sub Combo1_Click()
aa Combo1
End Sub
Private Sub Combo2_Click()
aa Combo2
End Sub
Private Sub Form_Load()
Combo1.AddItem "ddd"
Combo2.AddItem "ccc"
End Sub
sym1978 2003-12-10
  • 打赏
  • 举报
回复
怎么解决呀

7,759

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧