Private Sub Form_Load() b = 1 End Sub ============================================Private Sub Command1_Click()Dim a As TextBox, b As Long b = b + 1Set a = Form1.Controls.Add("VB.TextBox", "Text" & b) a.Visible = True a.BackColor = RGB(255, 255, 255) a.Text = "HJonny" a.BorderStyle = 0 a.Move 0, 0, 2155, 255End Sub ====================================================这代码点击一下按钮就创建一个TextBox控件,我想让添加出来的能触发Change事件,就像这样:Private Sub Text1_Change() Label1.Caption = Text1.Text End Sub应该怎么实现呢?
参照一下MSDN,不过就你的情况建议你使用控件数组,使用load方法添加VBControlExtender 对象 提供 Visual Basic VBControlExtender 的各种属性。语法VBControlExtender说明VBControlExtender 对象主要被用于动态地使用 Add 方法将控件添加到 Controls 集合这样的情况。在这一点上,VBControlExtender 对象对开发者是最有用的,因为它提供了一系列通用属性、事件和方法。对象的另一个功能是 ObjectEvent 事件,该事件的作用是对动态添加的控件发出的所有事件进行解释。下面的例子中首先声明了一个 VBControlExtender 类型的对象变量,然后在添加控件的时候设置变量。该示例还说明了如何编写 ObjectEvent 事件处理程序。Option Explicit Dim WithEvents objExt As VBControlExtender ' 使用 WithEvents 声明 VBControlExtender 变量 Private Sub LoadControl() Licenses.Add "Project1.Control1", "ewrinvcmcoe" Set objExt = Controls.Add("Project1.Control1", "myCtl") objExt.Visible = True ' 该控件在缺省情况下为不可见的。 End Sub Private Sub extObj_ObjectEvent(Info As EventInfo) ' 使用 Select Case 语句编写控件的事件处理程序。 Select Case Info.Name Case "Click" ' 在此处处理 Click 事件。 ' 在这里处理其他情况 Case Else ' 未知事件 ' 在此处理各种未知的事件。 End SelectEnd Sub将引用值赋值给变量时的有关限制 将 VBControlExtender 对象设置到动态添加的控件时,需要注意的是:内部控件不能够被赋值给变量。参考技术Avb6有两种方法,1用withevents来做.private withevents txt as textbox这样,你可处理事件private sub txt_change()..这里加你的代码end sub 增加控件时set txt= controls.add("textbox","newtxt")但你只能一个个的申明,还不如设计时加上这个 第二种是用控件数组你先做一个textx(0)控件数组然后加载时 用load textx(n) 语句进行这样你的代码一般是private sub textx_change(index )你只要处理对应的index就行.这样操作会方便一些.如果不明白,请补充.