Vb.net调用for循环生成的控件的方法
我在for循环中定义了一些buttonlabeltextbox等等,然后我想在之后完成一个功能,比如点击button,label里面的数字就加1,但是我不调用不到labe...
我在for循环中定义了 一些button label textbox等等,然后我想在之后完成一个功能,比如点击button ,label里面的数字就加1 ,但是我不调用不到label,请大神指教
就是在 For循环中 循环生成了几个上图中的button 和 label,我现在想要写,其中的某个button按下后 其中的某个label的值+1 但是我不会调用 小白求助 展开
就是在 For循环中 循环生成了几个上图中的button 和 label,我现在想要写,其中的某个button按下后 其中的某个label的值+1 但是我不会调用 小白求助 展开
展开全部
你有控件是没错,有方法也没错
但是你没有为控件添加对应的委托,即没有把事件处理方法(Bt_Click)添加到控件的事件队列中去
你应该使用AddHandler语句,具体请查看MSDN
更多追问追答
追问
AddHandler Bt.Click, AddressOf Bt_Click
这个我有写,但是我调用不到上面的label
追答
那你button能调用吗?
你是想点击button给label+1?
那你需要在button的点击事件中获得label这个控件,然后改变label控件的值就行了
具体你可以在一个它的父容器中检索这个label的名字获得这个控件
展开全部
可以根据动态生成的Name属性来区分,但是你在For循环中要注意,因为动态生成同名的控件是可以实现的,所以需要你自己代码控制控件名字不能相同
在 Me.Controls.Add(Bt)代码前面追加如下的代码
AddHandler Bt.Click, AddressOf Bt_Click '添加事件
实现:比如在button和label名字后面的需要完全对应,可以在Bt_Click过程中写下面的代码
If TypeOf (sender) Is Button Then
Me.Controls("Label" & sender.Text.ToString.Replace("Label", "")).Text = "Label" & (sender.Text.ToString.Replace("Label", "") + 1)
End If
在 Me.Controls.Add(Bt)代码前面追加如下的代码
AddHandler Bt.Click, AddressOf Bt_Click '添加事件
实现:比如在button和label名字后面的需要完全对应,可以在Bt_Click过程中写下面的代码
If TypeOf (sender) Is Button Then
Me.Controls("Label" & sender.Text.ToString.Replace("Label", "")).Text = "Label" & (sender.Text.ToString.Replace("Label", "") + 1)
End If
更多追问追答
追问
这个我加了 我是不知道如何在 button的单机事件中 调用之前生成的label
追答
实现:比如在button和label名字后面的需要完全对应,可以在Bt_Click过程中写下面的代码
If TypeOf (sender) Is Button Then
Me.Controls("Label" & sender.Text.ToString.Replace("Label", "")).Text = "Label" & (sender.Text.ToString.Replace("Label", "") + 1)
End If
'根据名字来调用,前提是你for循环生成的不能重名
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |