十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
Private ctrName As String '控件名称
成都创新互联制作网站网页找三站合一网站制作公司,专注于网页设计,成都网站设计、成都网站制作,网站设计,企业网站搭建,网站开发,建网站业务,680元做网站,已为成百上千服务,成都创新互联网站建设将一如既往的为我们的客户提供最优质的网站建设、网络营销推广服务!
Private isClick As Boolean '鼠标点击状态
'注:如果已知点击目标控件的父控件,ctrParent变量可以不要。
Private WithEvents ctrParent As Control '父控件
Private Sub ControlAMouseDown(sender As Object, e As MouseEventArgs) _
Handles Button1.MouseDown
isClick = (e.Button = MouseButtons.Left _
Or e.Button = MouseButtons.Right) '左键或右键按下
If isClick Then
Dim ctr As Control = CType(sender, Control) '转换Object为控件类型
ctrName = ctr.Name '获取控件名称
ctrParent = ctr.Parent '获取控件的父控件
End If
End Sub
'增加这个父控件事件,是为了正确判别鼠标弹起时是否已进入指定目标
Private Sub ParentMouseMove(sender As Object, e As EventArgs) _
Handles ctrParent.MouseMove '如果已取消ctrParent变量,改为相应的父控件
If isClick Then isClick = False '点击状态关闭
End Sub
Private Sub ControlBMouseUp(sender As Object, e As EventArgs) _
Handles Button2.MouseEnter
If isClick Then '如果点击状态为打开
Dim ctr As Control = CType(sender, Control) '转换Object为控件类型
MsgBox(ctrName " | " ctr.Name) '弹出消息显示结果
End If
End Sub
比方说当前form1上有三个控件, 都是textbox,在读取它们的值的时候,可以通过访问容器的Control属性来得到该容器中的所有控件。最后加入的的控件变成了集合中的第一个元素(下标为0)。
Me.Controls.Item(0).Text = "集合中的第1个元素"
Me.Controls.Item(1).Text = "集合中的第2个元素"
Me.Controls.Item(2).Text = "集合中的第3个元素"
这样可以给以上三个控件的 text属性赋值。同样,如果我们在form1中有个Panel、GroupBox,并且控件是存在于控件中,也可以通过me.panel1.controls.item(?).?的方式对控件进行操作。
如果你能确保你的label空间名称是以label开头,并且后面是数字的话,可以通过Sender.Name的方式来获取控件名称,再用Substring来截取后面的数字。
Private
Sub
Label1_MouseEnter(sender
As
Object,
e
As
EventArgs)
Handles
Label1.MouseEnter,
Label2.MouseEnter
'sender.name就是用来获取当前触发事件的控件的名称
Dim
n
As
Integer
n
=
Int(sender.name.ToString.Substring(5))
Call
Menter(n)
End
Sub
For Each c As Control In Me.Controls
MessageBox.Show(c.ToString())
Next
一个简单的例子,遍历当前Form下所有TextBox并将Text属性设置为空
For Each ct As Control In Me.Controls
If TypeOf ct Is TextBox Then
ct.Text = ""
End If
Next