用代码是可以实现的,但是也还要求机器里,有相关的注册 ocx

解决方案 »

  1.   

    Dim WithEvents cmdMyCommand As VB.CommandButton
        Option Explicit    Dim WithEvents ctlDynamic As VBControlExtender
        Dim WithEvents ctlText As VB.TextBox
        Dim WithEvents ctlCommand As VB.CommandButton
        Dim WithEvents ctlCommandDel As VB.CommandButton
        Private Sub ctlCommandDel_Click()
            Dim i As Integer
            
            Licenses.Remove "MSComctlLib.TreeCtrl"
            If MsgBox("是否删除所有控件", vbYesNo) = vbYes Then
            For i = 1 To Form1.Controls.Count
                Controls.Remove 0
            Next i
            End If
        End Sub
        Private Sub ctlCommand_Click()
            ctlText.Text = "你点击的是控制按钮"
        End Sub    Private Sub ctlDynamic_ObjectEvent(Info As EventInfo)
            If Info.Name = "Click" Then
                ctlText.Text = "你点击的条目是 " & _
                        ctlDynamic.object.selecteditem.Text
            End If
        End Sub    Private Sub Form_Load()
            Dim i As Integer
            Licenses.Add "MSComctlLib.TreeCtrl"        Set ctlDynamic = Controls.Add("MSComctlLib.TreeCtrl", _
                            "myctl", Form1)
            ctlDynamic.Move 1, 1, 2500, 3500
            For i = 1 To 10
                ctlDynamic.object.nodes.Add Key:="Test" & Str(i), _
                        Text:="Test" & Str(i)
                ctlDynamic.object.nodes.Add Relative:="Test" & Str(i), _
                        Relationship:=4, Text:="TestChild" & Str(i)
            Next i
            ctlDynamic.Visible = True        Set ctlText = Controls.Add("VB.TextBox", "ctlText1", Form1)
            ctlText.Move (ctlDynamic.Left + ctlDynamic.Width + 50), _
                            1, 2500, 100
            ctlText.BackColor = vbBlue
            ctlText.ForeColor = vbWhite
            ctlText.Visible = True        Set ctlCommand = Controls.Add("VB.CommandButton", _
                            "ctlCommand1", Form1)
            ctlCommand.Move (ctlDynamic.Left + ctlDynamic.Width + 50), _
                            ctlText.Height + 50, 1500, 500
            ctlCommand.Caption = "点击"
            ctlCommand.Visible = True
            
            Set ctlCommandDel = Controls.Add("VB.CommandButton", _
                            "ctlCommand2", Form1)
            ctlCommandDel.Move (ctlDynamic.Left + ctlDynamic.Width + 50), _
                            ctlText.Height + 650, 1500, 500
            ctlCommandDel.Caption = "删除所有控件"
            ctlCommandDel.Visible = True
        End Sub
        
    参考 http://www.applevb.com/art/dyn_control.txt 
    也可以用控制数组的方法 
      

  2.   

    2:wbdx(碳离子) 
    如果单纯用代码呢?呵呵……就像C那样。2;T2(無藥可救)
    一个OCX里只用1至2个组件,而一个OCX又有多大?如果有办法把一个组件从OCX里抽出来再和另外几个组合到一块儿,应该很好玩:)
      

  3.   

    給你舉個例子吧﹐Windows本身的OCX最大的只有1MB(system/*.ocx加起來=10MB)。在如今的高速CPU和海量HDD面前這算什么?
    能夠高效的出好的應用程序這是關鍵﹐編程序并不是來表現你的技朮水平有多高的。
    在這里我并不是說讓你大量用控件,但是CommandButton你是不是應該用啊(無特殊要求情況下)?
      

  4.   

    CommandButton所在的ocx是所有windwos装好以后都自带的!放心用吧!
      

  5.   

    只要你不用activex控件,是不用带OCX的。