主题:请问在Form窗体中如何应用Usercontrol中的属性??
zkyyp
[专家分:0] 发布于 2008-10-31 16:47:00
就是在制作OCX控件时,Usercontrol可以操作Form窗体,但反过来却不行(Form窗体无法对Usercontrol中的属性进行访问),不知道如何在Form中向Usercontrol传递数据!!!
回复列表 (共7个回复)
沙发
一江秋水 [专家分:9680] 发布于 2008-10-31 20:23:00
在用户控件定义一个公用的sub过程(实际上就是定义用户控件的方法),可以带输入参数,在Form中访问用户控件该方法时就能传递数据了。
请参考我7月18日的发贴《用户控件制作实例与讲解(下)》
板凳
一江秋水 [专家分:9680] 发布于 2008-11-01 08:07:00
如果是属性,与访问别的控件格式相同,即:控件名.属性名=X,或者反过来,X=控件名.属性名,
如果是只读属性,就只能用后面的格式
3 楼
zkyyp [专家分:0] 发布于 2008-11-01 08:58:00
好象不行啊!!
我在Usercontrol 中定义了一个:
Public Sub TT(x as String)
Text1.text=x
Ens Sub
然后在Form1窗体中:
Private Sub Command1_Click()
TT(123)
End Sub
结果提示“子程序或函数未定义”错误!!!!!
4 楼
一江秋水 [专家分:9680] 发布于 2008-11-01 12:53:00
控件名.TT "123"
5 楼
zkyyp [专家分:0] 发布于 2008-11-01 14:24:00
[[size=2]color=FF0000]大哥啊!!你好象还没明白我的意思啊!!! [/color][/size]
我要求的是设计的OCX控件具有两个或多个窗体!!。。。。。。。。。。
请看http://industry.ccidnet.com/art/1077/20040810/821745_1.html的一段摘录:
都晓得,在设计中usercontrol不能作为一个对象使用,这决定了在一个控件工程中的Form和usercontrol不能交互!也不是说不能交互,只是说Usercontrol可以调Form而Form就不能直接调用usercontrol,这段时间终于解决了这个问题,其实也很简单,哎,大脑短路~~~
具体方式如下:
首先我们建立一个控件工程,中间包括一个用户控件usercontrol,一个窗体form1
我们在窗体中申明一个窗体级Usercontrol的对象F1(Dim F1 As UserControl).
然后写一个方法.
Public Sub GetUsercontrol(UserCont As Usercontrol)
Set F1 = UserCont
End Sub
这样我们就可以使用F1来直接调用UserControl中的友元函数。。了。
具体写个例子:
比如我们要从From1中的一个随便什么事件,返回一个值给Usercontrol中的Textbox。那么我们只需要在UserControl中写一个友员属性
Friend Property let SetText(byval value as string)
Text1.text=value
End Property
那么通过上面我们写的一个Form方法,就可以在FORM中使用F1.SetText="一个值"来将值传递到usercontrol中。
6 楼
一江秋水 [专家分:9680] 发布于 2008-11-01 19:50:00
确实不明白你的意思,我只知道不论在控件工程中的窗体还是在窗体工程中的控件,窗体与控件都是可以互相传递数据的,根本用不着这段代码:
Public Sub GetUsercontrol(UserCont As Usercontrol)
Set F1 = UserCont
End Sub
7 楼
bcahzvip [专家分:6040] 发布于 2008-11-01 20:10:00
= =;
哎!~同意楼上.
我来回复