Vb.net调用for循环生成的控件的方法

我在for循环中定义了一些buttonlabeltextbox等等,然后我想在之后完成一个功能,比如点击button,label里面的数字就加1,但是我不调用不到labe... 我在for循环中定义了 一些button label textbox等等,然后我想在之后完成一个功能,比如点击button ,label里面的数字就加1 ,但是我不调用不到label,请大神指教
就是在 For循环中 循环生成了几个上图中的button 和 label,我现在想要写,其中的某个button按下后 其中的某个label的值+1 但是我不会调用 小白求助
展开
 我来答
我零0七
2017-04-12 · 热衷人生的有效性,关注自我
我零0七
采纳数:684 获赞数:11738

向TA提问 私信TA
展开全部

你有控件是没错,有方法也没错

但是你没有为控件添加对应的委托,即没有把事件处理方法(Bt_Click)添加到控件的事件队列中去

你应该使用AddHandler语句,具体请查看MSDN

https://msdn.microsoft.com/zh-cn/library/7taxzxka.aspx

更多追问追答
追问
AddHandler Bt.Click, AddressOf Bt_Click
这个我有写,但是我调用不到上面的label
追答
那你button能调用吗?
你是想点击button给label+1?
那你需要在button的点击事件中获得label这个控件,然后改变label控件的值就行了
具体你可以在一个它的父容器中检索这个label的名字获得这个控件
tystq
2017-04-12 · TA获得超过1201个赞
知道小有建树答主
回答量:943
采纳率:100%
帮助的人:822万
展开全部
可以根据动态生成的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
更多追问追答
追问
这个我加了  我是不知道如何在 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循环生成的不能重名
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式