回 帖 发 新 帖 刷新版面

主题:请问在Form窗体中如何应用Usercontrol中的属性??

就是在制作OCX控件时,Usercontrol可以操作Form窗体,但反过来却不行(Form窗体无法对Usercontrol中的属性进行访问),不知道如何在Form中向Usercontrol传递数据!!!

回复列表 (共7个回复)

沙发

在用户控件定义一个公用的sub过程(实际上就是定义用户控件的方法),可以带输入参数,在Form中访问用户控件该方法时就能传递数据了。
请参考我7月18日的发贴《用户控件制作实例与讲解(下)》

板凳

如果是属性,与访问别的控件格式相同,即:控件名.属性名=X,或者反过来,X=控件名.属性名,
如果是只读属性,就只能用后面的格式

3 楼

好象不行啊!!
我在Usercontrol 中定义了一个:
                             Public Sub TT(x as String)
                             Text1.text=x
                             Ens Sub
然后在Form1窗体中:
                             Private Sub Command1_Click()
                             TT(123)
                             End Sub
                             
                             结果提示“子程序或函数未定义”错误!!!!!

4 楼

控件名.TT "123"

5 楼

[[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 楼

确实不明白你的意思,我只知道不论在控件工程中的窗体还是在窗体工程中的控件,窗体与控件都是可以互相传递数据的,根本用不着这段代码:
Public Sub GetUsercontrol(UserCont As Usercontrol) 
     Set F1 = UserCont 
End Sub 

7 楼

= =;
哎!~同意楼上.

我来回复

您尚未登录,请登录后再回复。点此登录或注册