VB 动态添加textbox控件,让添加出来的控件触发Change

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VB 动态添加textbox控件,让添加出来的控件触发Change相关的知识,希望对你有一定的参考价值。

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 对象设置到动态添加的控件时,需要注意的是:内部控件不能够被赋值给变量。 参考技术A vb6有两种方法,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就行.这样操作会方便一些.如果不明白,请补充.

用Jquery的append事件动态添加控件,点击添加时会清空原来动态控件中的值。是啥原因?

我的下拉框默认值分别是“请选择”和“并且”,动态生成控件下拉框绑定的也是同样的值。现在发现一个问题:我给之前添加好的动态控件填好值后,再点击动态添加控件时,之前动态控件里我填的值又会被还原(也就是之前的值被清空掉了)。但是只有下拉框填的值会被清空,文本框不会。是什么原因?

参考技术A 按钮改用button 别用submit,在用触发以后的事件最后,return false 参考技术B 原因是代码写错了追问

没写错

没写错

以上是关于VB 动态添加textbox控件,让添加出来的控件触发Change的主要内容,如果未能解决你的问题,请参考以下文章

vb如何让控件丢失焦点?

WPF 动态添加UI控件 界面假死 怎么办?

在winform上添加用户控件过多时出现闪烁

C#中关于combobox控件问题

如何在windows窗体里面添加窗口

VB中TextBox控件的Maxlength属性的疑问