控件变量的复制如何实现?
A控件和B控件是一样的.比如都是TREEVIEW或者都是TEXT或控纽控件.
A控件已经有一定的属性或变量了.
想直接把它的所有变量属性全部传递给B.
如何实现?
[解决办法]
中秋快乐~~~
好久没来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里就有一个一模一样的东西了.....
不过不知道这办法是不是合适你的具体应用....看着办吧,反正这是一个大约的思路