好东西!巴顿的杰作http://www.easthot.net/HotForum/topic.asp?topic_id=475&forum_id=1&Topic_Title=BARDO%CA%D6%B8%E5%A3%BAVB%B8%DF%CA%D6%D6%AE%C2%B7%A3%A82%A3%A9&forum_title=Visual+Basic&M=False&S=True

解决方案 »

  1.   

    用控间数组做,运行时只需new 一个就可以了!
      

  2.   

    这是加textbox,其它一样
    Private WithEvents txtNew As VB.TextBoxPrivate Sub cmdNewUpDown_Click()  Set txtNew = Controls.Add("VB.TextBox", "TextDynamic")
      txtNew.Text = "New TextBox"
      txtNew.Visible = True
      
    End SubPrivate Sub txtNew_KeyPress(KeyAscii As Integer)
      KeyAscii = KeyAscii - 1
    End Sub
      

  3.   

    Set Text1 = Me.Controls.Add("VB.TextBox", "Text1")
        Text1.Left = 120
        Text1.Top = 120
        Text1.Width = 1000
        Text1.Height = 300
        Text1.Visible = True
      

  4.   

    Option Explicit
    Dim WithEvents txt As TextBox
    Dim WithEvents lbl As LabelPrivate Sub Form_Load()
      Set txt = Form1.Controls.Add("VB.TextBox", "cmdOK", Form1)
      txt.Top = 100
      txt.Left = 500
      txt.Width = 1000
      txt.Height = 200
      txt.Visible = True
      Set lbl = Form1.Controls.Add("VB.Label", "lblName", Form1)
      lbl.Top = 1000
      lbl.Left = 600
      lbl.Width = 1000
      lbl.Height = 200
      lbl.Caption = "mycaption"
      lbl.Visible = True
    End Sub
      

  5.   

    再补充一个,不介意吧:)
    Option Explicit
    Const WS_EX_STATICEDGE = &H20000
    Const WS_EX_TRANSPARENT = &H20&
    Const WS_CHILD = &H40000000
    Const CW_USEDEFAULT = &H80000000
    Const SW_NORMAL = 1
    Private Type CREATESTRUCT
        lpCreateParams As Long
        hInstance As Long
        hMenu As Long
        hWndParent As Long
        cy As Long
        cx As Long
        y As Long
        x As Long
        style As Long
        lpszName As String
        lpszClass As String
        ExStyle As Long
    End Type
    Private Declare Function CreateWindowEx Lib "user32" Alias "CreateWindowExA" (ByVal dwExStyle As Long, ByVal lpClassName As String, ByVal lpWindowName As String, ByVal dwStyle As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hWndParent As Long, ByVal hMenu As Long, ByVal hInstance As Long, lpParam As Any) As Long
    Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
    Private Declare Function DestroyWindow Lib "user32" (ByVal hwnd As Long) As Long
    Dim mWnd As Long
     Private Sub Form_Load()
        Dim CS As CREATESTRUCT
        'Create a new label
        mWnd = CreateWindowEx(WS_EX_STATICEDGE Or WS_EX_TRANSPARENT, "STATIC", "Hello World !", WS_CHILD, 0, 0, 300, 50, Me.hwnd, 0, App.hInstance, CS)
        Me.Caption = mWnd
        'Show our label
        ShowWindow mWnd, SW_NORMAL
    End SubPrivate Sub Form_Unload(Cancel As Integer)
    DestroyWindow mWndEnd Sub
      

  6.   

    VB中控件是不能动态创建的,但可以这样来做:
    1、先在窗体上创建一个控件数组LabEg(0),保留一个,其Index=0
    2、当要动态创建时用:Load labEg(i) '// i是从1 到 n(任意),此时labEg(i)是在创建了,但其Visible被设为False,你要该为True
    3、记住,窗体Unload时一定要Unload labEg(i)
    ========================================================
    例子(栽自MSDN):
    要试用此例子,将代码粘贴到窗体的声明部分,该窗体带有 CommandButton,OptionButton(设置该选项按钮的 Index 属性为 0)、以及 CommonDialog 控件。按 F5 键,为所要的公共对话框选择选项按钮,再选取命令按钮。Private Sub Form_Paint ()
       Static FlagFormPainted As Integer
       ' 当第一次画窗体时,
       If FlagFormPainted <> True Then
          For i = 1 To 5
             Load Option1(i)   ' 给数组添加 5 个选项按钮。
             Option1(i).Top = Option1(i - 1).Top + 350
             Option1(i).Visible = True
          Next i
          Option1(0).Caption = "Open"   ' 在每个选项按钮上放置标题。
          Option1(1).Caption = "Save"
          Option1(2).Caption = "Color"
          Option1(3).Caption = "Font"
          Option1(4).Caption = "Printer"
          Option1(5).Caption = "Help"
          Command1.Caption = "Show Dlg"   ' 标签命令按钮。
          FlagFormPainted = True   ' 窗体已画完。
       End If
    End SubPrivate Sub Command1_Click ()
       If Option1(0).Value Then   ' 如果选择打开选箱,
          CommonDialog1.ShowOpen   ' 显示打开公共对话框。
       ElseIf Option1(1).Value Then   ' 否则,
          CommonDialog1.ShowSave   ' 显示 Save 公共对话框。
       ElseIf Option1(2).Value Then   ' 否则,
          CommonDialog1.ShowColor   ' 显示 Color 公共对话框。
       ElseIf Option1(3).Value Then   ' 否则,
          CommonDialog1.Flags = cdlCFBoth   ' 在使用ShowFont 方法之前,
                '必须给 cdlCFBoth,                     ' cdlCFPrinterFonts, 
                '或 cdlCFScreenFonts             
       ' 置标识属性。
          CommonDialog1.ShowFont   ' 显示字体公共对话框。
       ElseIf Option1(4).Value Then   ' 或,
          CommonDialog1.ShowPrinter   ' 显示打印机公共对话框。
       ElseIf Option1(5).Value Then   ' 或
          CommonDialog1.HelpFile = "VB5.hlp"
          CommonDialog1.HelpCommand = cdlHelpContents
          CommonDialog1.ShowHelp' 显示 Visual Basic 帮助目录主题。
          End If
    End Sub
      

  7.   

    Dim TempControl1 As Label
    Set TempControl1 = Controls.Add("VB.Label", "Label1")
    TempControl1.Width = 
    TempControl1.Height = 
    TempControl1.Top = 
    TempControl1.Visible = TrueDim TempControl2 As TextBox
    Set TempControl2 = Controls.Add("VB.TextBox", "TextBox1")
    TempControl2.Visible = True
      

  8.   

    http://www.csdn.net/Expert/TopicView1.asp?id=811767
    http://www.csdn.net/Expert/TopicView1.asp?id=803513
    http://www.csdn.net/Expert/TopicView1.asp?id=809882
    http://www.csdn.net/Expert/TopicView1.asp?id=791036
      

  9.   

    dim text() as textbox
    Set Text1(i) = Me.Controls.Add("VB.TextBox", "Text1")用控件数组吧!
      

  10.   

    dim text() as textbox
    Set Text1(i) = Me.Controls.Add("VB.TextBox", "Text1")用控件数组吧!