首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TextChanged中的AllTextBox事件

TextChanged中的AllTextBox事件
EN

Stack Overflow用户
提问于 2016-08-03 16:02:17
回答 3查看 718关注 0票数 0

你好,这是我的代码

代码语言:javascript
复制
    Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
    TextBox1.Text = Val(TextBox1.Text)
End Sub

Private Sub TextBox2_TextChanged(sender As Object, e As EventArgs) Handles TextBox2.TextChanged
    TextBox2.Text = Val(TextBox2.Text)
End Sub

Private Sub TextBox3_TextChanged(sender As Object, e As EventArgs) Handles TextBox3.TextChanged
    TextBox3.Text = Val(TextBox3.Text)
End Sub

Private Sub TextBox4_TextChanged(sender As Object, e As EventArgs) Handles TextBox4.TextChanged
    TextBox4.Text = Val(TextBox4.Text)
End Sub

Private Sub TextBox5_TextChanged(sender As Object, e As EventArgs) Handles TextBox5.TextChanged
    TextBox5.Text = Val(TextBox5.Text)
End Sub

Private Sub TextBox6_TextChanged(sender As Object, e As EventArgs) Handles TextBox6.TextChanged
    TextBox6.Text = Val(TextBox6.Text)
End Sub

如何为所有文本框创建简短代码?我试着用这个代码,我不能工作

代码语言:javascript
复制
 Dim i As integr
    TextBox(i).text = Val(TextBox(i).text)

谢谢你的帮助

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-08-03 16:07:07

您只需要创建一个TextChanged处理程序,然后将所有Texbox事件绑定到它。

代码语言:javascript
复制
Private Sub TextBox_TextChanged(sender As Object, e As EventArgs) _
        Handles TextBox1.TextChanged, TextBox2.TextChanged, <...for all your textboxes ..>
    Dim target = DirectCast(sender, TextBox)
    target.Text = Val(target.Text)
End Sub

如果要在代码中绑定所有文本框,则可以在加载窗体后以编程方式完成此操作:

代码语言:javascript
复制
Dim allTextBoxes = Me.Controls.OfType(Of TextBox)()
For Each textbox In allTextBoxes = 
    AddHandler textbox.TextChanged, AddressOf TextBox_TextChanged
Next
票数 1
EN

Stack Overflow用户

发布于 2016-08-03 16:04:33

使用一个处理程序来处理所有问题:

代码语言:javascript
复制
Private Sub TextBox_TextChanged(sender As Object, e As EventArgs)  Handles TextBox1.TextChanged, _
                                                                           TextBox2.TextChanged, _
                                                                           TextBox3.TextChanged, _
                                                                           TextBox4.TextChanged, _
                                                                           TextBox5.TextChanged, _
                                                                           TextBox6.TextChanged
    Dim txt = DirectCast(sender, TextBox)
    txt.Text = Val(txt.Text)
End Sub
票数 2
EN

Stack Overflow用户

发布于 2016-08-03 17:05:45

除了默里·福克斯克罗夫特的回答。您可以动态地为文本框创建处理程序,并通过执行以下操作在一个文本框中添加子例程

代码语言:javascript
复制
Dim textboxes = Me.Controls.OfType(Of TextBox)()
For Each txt in textboxes
    AddHandler textbox.TextChanged, Sub(sender As Object, e As EventArgs)
                                       ... (using sender to find out which textbox sent the command)
                                    End Sub
Next
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38737788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档