百科知识

vb关于动态添加控件现有picture1(0),picture1

2009-08-25 12:55:13一***
现有picture1(0),picture1(0)中有label1(0) 我想添加Picture1(1),并使Picture1(1)中有个label1(1) 请问怎样做? vb关于动态添加控件现有picture1(0),picture1(0)中有label1(0)我想添加Picture1(1),并使Picture1(1)中有个la?

最佳回答

  •   这个问题嘛真的不好解决,因为 Label 是没有句柄的。 如果是一个 PictureBox 和 CommandButton 的话,那就很容易实现了。 '函数声明 Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long '事件代码 Load Picture1(1) Load Command1(1) SetParent Command1(1)。
      hWnd, Picture1(1)。hWnd Picture1(1)。Move 0, 0 '为了看效果将他们整体移动到其他位置,如果没有这句,将与原来的一组完全重合 Command1(1)。Visible = True '必须的,否则看不到 Picture1(1)。
      Visible = True '必须的,否则看不到 可以发现,按钮的内部定位和原来的完全一致。 可是,如果是 Label 的话,由于他没有句柄,属于中层次控件,无法随意调整它们的层次,即不能载入到高层次的 PictureBox 中去。 如果必须解决这样的问题,那么需要自己制作一个有句柄的 LabelEx 控件来完成要求。
      或者你说不定是为了实现一种浏览器或什么的,可以将它们整体做成一个控件封装起来,这样就能以新控件的形式建立自定义控件的数组了。 哎,实在看不下去了,楼下的卖关子。。。 我想了下,你如果只要再添加一个 PictureBox 和 Label 并且让 Label 在 PictureBox 里面的话,其实可以不考虑使用控件数组的。
       为了方便,以下代码混合了控件数组和动态添加控件的相关方法。 Private WithEvents NewLabel As Label Private Sub AddGroup() Load Picture1(1) Set NewLabel = Me。
      Controls。Add("VB。Label", "NewLabel", Picture1(1)) With NewLabel 。Caption = Label1(0)。Caption 。Move Label1(0)。Left, Label1(0)。
      Top, Label1(0)。Width, Label1(0)。Height 。Visible = True End With Picture1(1)。Move 0, 0 '为了看效果将他们整体移动到其他位置,如果没有这句,将与原来的一组完全重合 Picture1(1)。
      Visible = True End Sub Private Sub NewLabel_Click() '响应事件代码 End Sub 这样的缺点就是不能从整体上控制控件的行为,尚有待考虑。 本人制作的 VB 滚动条控件已经超过发行期,现在将不在网络上发布。
       目前最新的版本已经十分完善了。 对于有需要的用户可以联系 galaxysoft@ 。
    2009-08-26 17:56:48
  • 容易。 请加点分!
    2009-08-27 00:13:41
  • 关注...........
    2009-08-27 00:06:48
  • 很赞哦! (209)