我想根据一个未知数量的数组arry(i)在Picture上来自动生成SSPanel(i)控件,请问
我应该怎么做呢?
我应该怎么做呢?
解决方案 »
- 导入的一个列既有字符型又有日期型,该咋办?(有代码)
- 关于多维数组的问题
- mrc.movenext是跳到下一条记录,那么用什么语跳到上一条呢?
- 如何把这VB代码转为C#?
- 串行端口区不出数据,请各位大侠分析一下源程序,在线等,急
- 请问怎么样在报表上加一个查询啊?
- 在vb的command控件中能否排列文字和bmp的位置,如左右,上下等!
- from now , I'll come here usuauly
- 如何用VB程序将EXCEL文件导出为XML格式
- VB组件在ASP调用的问题
- 问一个键盘按键的问题哈!
- 实现类似Windows自动隐藏任务栏的功能,如状态栏或控件的实现自动隐藏等!!!!请您写一下注释!!!急急急!!!在线等
说清楚些啊,不说具体点我都没法学习了UP
Dim WithEvents txtTotal As TextBoxSub CreateTextbox()
' 创建新的Textbox控件
Set txtTotal = Controls.Add("VB.TextBox", "txtTotal",Me)
' 将控件移动到你所需要的地方
txtTotal.Move 1000, 1000, 1000, 1000
' 创建时,所有的控件都是不可见的
txtTotal.Visible = True
End Sub
请注意Add方法的第二个参数:分配给控件的名称。你可以用这个名称从Controls集合中获取相应的控件或移除该控件。例如:Controls.Remove "txtTotal" 在变量声明时加上WithEvents关键字,即使在设计时窗体不存在该控件,你也可以为该控件的事件编写代码。
***上面所讲的方法只适合解决VB内置的控件。***
如果你要看详细的资料,可以去google找一下相关方面的资料。
但是我现在找的是在picture上动态创建多个SSpanel控件,
而且他的数量是要根据一个数组arry(i)有关系,随着i的变化,创建的个数
将相应的变生改变。
请大家帮助我……
1 动态加载控件
2 将已经加载的控件移动到指定的容器中,并重新定位
第一步你已经能够做到,现在我写第二步
建一模块
Option ExplicitPublic Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long在窗体加载控件加
SetParent 动态加载控件的句柄,制定容器句柄
例如 SetParent Frame1.hWnd, Picture1.hWnd
将 Frame1 移动到 Picture1中
但是我现在找的是在多个容器上(容器控也是动态创建的)动态创建多个SSpanel控件,而且他的数量是要根据一个数组arry(i)有关系,随着i的变化,创建的个数将相应的变生改变。
例如:
我要动态创建i个SSpanel控件,并在每个SSpanel控件上动态创建text控件,
并且要求它们的相互位置是相同的,统一的;也就是说当创建第一个SSpanel控件的
时候,相应的在这个SSpanel控件上创建第一个text控件,以此类推,第二个,第三个……一直到第i个。
这个i的值是可以从一个函数中传过来,到这里的时候,他已经是个确定的值了。
For I = 0 To 2
If Newpanel Is Nothing Then
Set Newpanel = Controls.Add("threed.sspanel", "newpanel" & CStr(I), Me)
Set Newtxt = Controls.Add("vb.textbox", "newtxt" & CStr(I), Newpanel)
Newpanel.Visible = True
Newtxt.Visible = True
Call NewSetPos(I)
Set Newtxt = Nothing
Set Newpanel = Nothing
End If
Next I
End SubPrivate Sub NewSetPos(II As Integer)' Newpanel.Top = (100 + I * 500)
' Newpanel.Left = (100 + I * 500)
'
' Newtxt.Top = (100 + I * 500)
' Newtxt.Left = (100 + I * 500) Newpanel.Move 300 + II * 1000, 200 + II * 1000
但在这里,他是每建立一次,然后释放了对象,然后再建立……
也就是说并不是一次性全部建立你所要求数量的控件,
所以在动态控件释放之前,要求你已经把全部的工作已经做完
然后再释放。
虽然不是很好,但我想暂时也可以用了!
谢谢大家……