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

gddd 2007-07-28 10:58:33
A控件和B控件是一样的.比如都是TREEVIEW或者都是TEXT或控纽控件.

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

如何实现?
...全文
219 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
嗷嗷叫的老马 2007-09-26
  • 打赏
  • 举报
回复
还有就是,用这办法,那么你要操作目标控件,只需要在本窗体里直接写就行了.

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

应该也方便吧

祝你好运:)
嗷嗷叫的老马 2007-09-26
  • 打赏
  • 举报
回复
中秋快乐~~~

好久没来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里就有一个一模一样的东西了.....

不过不知道这办法是不是合适你的具体应用....看着办吧,反正这是一个大约的思路
fj182 2007-09-25
  • 打赏
  • 举报
回复
运行时还是设计时?设计时直接复制粘贴即可,至于运行时嘛,好像用VB本身的机制比较难于实现,通用的不好做,比较苯的办法就是逐个复制属性。貌似可以通过ActiveX底层机制来实现,等待高手...
seamonst 2007-09-24
  • 打赏
  • 举报
回复
顶一下,关注中……
lpb830820 2007-09-21
  • 打赏
  • 举报
回复
我也想知道啊。
嗷嗷叫的老马 2007-07-30
  • 打赏
  • 举报
回复
....................糊涂了......游走............
gddd 2007-07-30
  • 打赏
  • 举报
回复
比如一个TREEVIEW.在FRM1窗口了.并且已经得到数据.
开启FRM2窗口.里面也有一个TREEVIEW,打开它的时候,执行复制frm1.TREEVIEW的过程.
就除了名字不用复制,其它内容都要.比如大小.里面的数据什么的.
gddd 2007-07-29
  • 打赏
  • 举报
回复
..忘了说了....要支持在本程序其它窗口的复制的...
clear_zero 2007-07-29
  • 打赏
  • 举报
回复
制作控件数组
你可以在运行时候动态load,这样新加载的控件就和原有的具有相同的属性了
gddd 2007-07-29
  • 打赏
  • 举报
回复
汗....你的方法真牛...

复制和CTRL+V...VB代码怎么写?

原理上来说应该不行吧?

粘控件到窗体中?
mmyyxx88 2007-07-29
  • 打赏
  • 举报
回复
1. 设计时,点击控件A,右键选择复制
2. 粘贴,弹出提示,点击YES。生成与控件A同名控件(除INDEX属性外,其余属性均相同)。
3. 删除控件B
4. 更改新控件名为原控件B名

1,451

社区成员

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

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