在一个窗体中写了一个函数 Public Sub GetUser(User() As stcUser) For i = LBound(User) To UBound(User) If Len(User(i)) > 0 Then CmbLogin.AddItem User(i).strUser Next End Sub --------------------------------------------------------------- 把上面的代码放到模块中。问题可解决!
但是我想把user()传给这个窗体呀
在窗体中不能定义Public函数,你需要使用其他方法将user()传递到窗体中。
把代码改成 Public Sub GetUser(User() As stcUser) For i = LBound(User) To UBound(User) If Len(User(i)) > 0 Then FrmLogin.CmbLogin.AddItem User(i).strUser Next End Sub
例如用属性,在窗体代码中加入以下代码: Property Set User(U As stcUser)End PropertyProperty Get User()End Property 定义一个User属性,然后在外面调用Form的这个属性
To technofantasy(www.applevb.com) 在窗体中定义Public 函数正常情况下好象没什么问题。但是传递自定义类型好象真的不行。
仍旧在这行上有一样的编译错误 Property Set User(Uuser() As stcUser)
To kevindude(kevin) 你说想把Uer()传递给窗体的控件? 还是......
反正就是想把User()传给窗体,就当是窗体的一个属性吧
靠,白写了一大堆,居然没有出来?!CSDN编程问题?! 2种办法: 1。将数组改成定义为Variant,Public Sub GetUser(varUser as variant) 2。如果用类来实现,则可将Type修改为User类,另外用Users集合来包含这些User类的实例。参见“类模块向导”!这种方法的接口最友好!
窗体中的函数 Public Sub GetUser(User() As stcUser) 改为 Friend Sub GetUser(User() As stcUser)
to 自己发工资老兄,你说的我不是很懂,可否用代码示例一下 to gao43() 如何定义公共对象模块?什么是公共对象模块?
at form1:Friend Sub GetUser(User() As stcUser) Dim i As Integer For i = LBound(User) To UBound(User) MsgBox User(i).strUser Next End Subat form2:Private Sub Command1_Click() Dim User(2) As stcUser User(0).strUser = "1" User(1).strUser = "2" User(2).strUser = "3"
Public Sub GetUser(User() As stcUser)
For i = LBound(User) To UBound(User)
If Len(User(i)) > 0 Then CmbLogin.AddItem User(i).strUser
Next
End Sub
---------------------------------------------------------------
把上面的代码放到模块中。问题可解决!
Public Sub GetUser(User() As stcUser)
For i = LBound(User) To UBound(User)
If Len(User(i)) > 0 Then FrmLogin.CmbLogin.AddItem User(i).strUser
Next
End Sub
Property Set User(U As stcUser)End PropertyProperty Get User()End Property
定义一个User属性,然后在外面调用Form的这个属性
在窗体中定义Public 函数正常情况下好象没什么问题。但是传递自定义类型好象真的不行。
Property Set User(Uuser() As stcUser)
你说想把Uer()传递给窗体的控件?
还是......
2种办法:
1。将数组改成定义为Variant,Public Sub GetUser(varUser as variant)
2。如果用类来实现,则可将Type修改为User类,另外用Users集合来包含这些User类的实例。参见“类模块向导”!这种方法的接口最友好!
http://www.csdn.net/expert/topic/654/654811.xml?temp=.8152735
主题: 我自认VB水平不错,请大家给我估估价!
http://www.csdn.net/expert/topic/654/654811.xml?temp=.8152735
主题: 我自认VB水平不错,请大家给我估估价!
呵呵。那就没法了。同意楼上的还是写个类吧。
variant变量能够存储所有系统定义类型的数据。但没有说明可否存储字定义类型的数据。你的问题可否转化为:如何定义公共对象模块?
Public Sub GetUser(User() As stcUser)
改为
Friend Sub GetUser(User() As stcUser)
to gao43() 如何定义公共对象模块?什么是公共对象模块?
Dim i As Integer
For i = LBound(User) To UBound(User)
MsgBox User(i).strUser
Next
End Subat form2:Private Sub Command1_Click()
Dim User(2) As stcUser
User(0).strUser = "1"
User(1).strUser = "2"
User(2).strUser = "3"
Form1.GetUser User
End Subpassed!
回复完才看见的 回复人: kevindude(kevin) ( ) 信誉:100 2002-04-18 15:18:00 得分:0
楼上电阻老兄的方法是性的通的,也比较简洁,散分!
Top
回复人: gump2000(阿甘) ( ) 信誉:97 2002-04-18 15:19:00 得分:0
一分钟,改写代码还来不及