您的位置:程序门 -> vb -> 控件



控件变量的复制如何实现?


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


控件变量的复制如何实现?
发表于:2007-07-28 22:58:33 楼主
a控件和b控件是一样的.比如都是treeview或者都是text或控纽控件.

a控件已经有一定的属性或变量了.
想直接把它的所有变量属性全部传递给b.

如何实现?
发表于:2007-07-29 14:21:311楼 得分:0
1.   设计时,点击控件a,右键选择复制
2.   粘贴,弹出提示,点击yes。生成与控件a同名控件(除index属性外,其余属性均相同)。
3.   删除控件b
4.   更改新控件名为原控件b名
发表于:2007-07-29 22:12:432楼 得分:0
汗....你的方法真牛...

复制和ctrl+v...vb代码怎么写?

原理上来说应该不行吧?

粘控件到窗体中?
发表于:2007-07-29 22:24:433楼 得分:0
制作控件数组
你可以在运行时候动态load,这样新加载的控件就和原有的具有相同的属性了
发表于:2007-07-29 22:42:584楼 得分:0
..忘了说了....要支持在本程序其它窗口的复制的...
发表于:2007-07-30 00:38:485楼 得分:0
....................糊涂了......游走............
发表于:2007-07-30 01:49:546楼 得分:0
比如一个treeview.在frm1窗口了.并且已经得到数据.
开启frm2窗口.里面也有一个treeview,打开它的时候,执行复制frm1.treeview的过程.
就除了名字不用复制,其它内容都要.比如大小.里面的数据什么的.
发表于:2007-09-21 11:45:567楼 得分:0
我也想知道啊。
发表于:2007-09-24 13:15:508楼 得分:0
顶一下,关注中……
发表于:2007-09-25 12:37:409楼 得分:0
运行时还是设计时?设计时直接复制粘贴即可,至于运行时嘛,好像用vb本身的机制比较难于实现,通用的不好做,比较苯的办法就是逐个复制属性。貌似可以通过activex底层机制来实现,等待高手...
发表于:2007-09-26 11:57:0110楼 得分:0
中秋快乐~~~

好久没来csdn了呵呵

看明白了楼主所要的效果了.

其实就是想让现在窗口里面的一个控件原样显示到另一个窗口是吧..?

本来想直接试着直接复制指针,发现无效:

'fomr1里的代码,里面放一个text1(0),数组控件,设定好大小,内容等属性以便区分
option   explicit

private   declare   sub   copymemory   lib   "kernel32.dll "   alias   "rtlmovememory "   (   _
          byval   destination   as   long,   _
          byval   source   as   long,   _
          byval   length   as   long)

private   sub   command1_click()
        load   form2
        form2.controls.add   "vb.textbox ",   "text1 "
        call   copymemory(form2.getobjptr,   objptr(me.text1(0)),   4)     '复制指针
        form2!text1.visible   =   true
        form2.show   ,   me
end   sub

'form2内代码:

option   explicit

public   function   getobjptr()   as   long
        getobjptr   =   objptr(me!text1)
end   function

结果无效....不知道是不是没搞对....

然后又想了一下....楼主不是要视觉上的效果嘛~~~

那何不简单点,只让另一个窗体作为一个显示容器?

思路:

以当前控件为样本,载入一个一样的控件,再 "放 "到另一个窗体里面....

代码:

'form1内,控件与上面代码一样

option   explicit

private   declare   function   setparent   lib   "user32.dll "   (   _
          byval   hwndchild   as   long,   _
          byval   hwndnewparent   as   long)   as   long

private   sub   command2_click()
        load   form2
        load   text1(1)
        call   setparent(text1(1).hwnd,   form2.hwnd)
        text1(1).visible   =   true
        form2.show
end   sub

'form2内就什么也不用了,一个空窗体就ok

运行后点command2(这按钮得要....忘了说明-_-)

form2里就有一个一模一样的东西了.....

不过不知道这办法是不是合适你的具体应用....看着办吧,反正这是一个大约的思路
发表于:2007-09-26 12:02:1611楼 得分:0
还有就是,用这办法,那么你要操作目标控件,只需要在本窗体里直接写就行了.

另一个窗体,仅作为一个纯粹的交互界面而已

应该也方便吧

祝你好运:)


快速检索

最新资讯
热门点击