vb.net - 我们如何在 VB.net 中创建控件数组
问题描述
当任何文本框获得焦点时,我有一个带有 4 个文本框的表单,然后它的颜色变回黄色,其他文本框的颜色变回白色。
当我在 vb6 中工作时,它很容易使用控件数组完成例如创建文本框控件数组
设置代码如
Private Sub text1_GotFocus(Index As Integer)
Call color
Text1(Index).BackColor = vbyellow
End Sub
Private Sub color()
For I = 1 To 4
Text1(I).BackColor = vbWhite
Next I
但是在 VB.net 中没有控制数组,所以我们做一些类似的事情
Module Module1
Public mytext() As TextBox = {Form1.TextBox1, Form1.TextBox2, Form1.TextBox3, Form1.TextBox4}
End Module
Sub color()
For i = 0 To 3
mytext(i).BackColor = Drawing.Color.White
Next i
End Sub
Private Sub TextBox1_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles
TextBox1.GotFocus
color()
ChangeColor(sender)
End Sub
Private Sub TextBox2_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox2.GotFocus
color()
ChangeColor(sender)
End Sub
Private Sub TextBox3_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox3.GotFocus
color()
ChangeColor(sender)
End Sub
Private Sub TextBox4_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox4.GotFocus
color()
ChangeColor(sender)
End Sub
Sub ChangeColor(ByRef box As TextBox)
box.BackColor= Drawing.Color.Yellow
End Sub
End Class
但是它的长代码任何人都可以像我的 vb6 代码一样告诉我一个简单的方法
解决方案
将 Handles 子句链接在一起。MSDN 示例:https ://docs.microsoft.com/en-us/dotnet/visual-basic/language-reference/statements/handles-clause#example-2
在您的情况下,它将如下所示:
Private Sub TextBoxChangeColor_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.GotFocus, TextBox2.GotFocus, TextBox3.GotFocus, TextBox4.GotFocus
Dim this As TextBox = DirectCast(sender, TextBox)
this.BackColor = Color.Yellow
End Sub
Private Sub TextBoxChangeColor_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.LostFocus, TextBox2.LostFocus, TextBox3.LostFocus, TextBox4.LostFocus
Dim this As TextBox = DirectCast(sender, TextBox)
this.BackColor = Color.White
End Sub
推荐阅读
- css - 如何在不使用网格和 flex 的情况下制作水平视图
- python - Torchvision transforms.toPILImage() TypeError: 函数只需要 1 个参数(给定 3 个)
- javascript - C++ 服务器和 Javascript 浏览器客户端之间的 Ice::BadMagicException
- azure - 获取与某个构建定义关联的所有安全组和用户[Azure-Devops]
- python-3.x - 一种从两个列表中创建字典的更好方法,其中一个具有重复值
- python - Pytorch 的 mse_loss 函数的奇怪问题
- laravel - 使用 Swagger API 上传图片
- r - 在 ggplot (R) 中分离 geom_point 和 geom_path 绘图层
- node.js - 如何在 Flutter android 应用程序中发送推送通知?
- python - 如何用空列表值替换 Pandas 列 NaN 值?