VB   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了[VB.NET]有关控件组的问题!大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
有关控件组的问题! Private Timer_BaoJing(3) As System.Timers.Timer Private lblAd(3) As Label 我就是想把这两个控件一一对应起来 在timer的事件里操作label,Private Sub Form1_Load(ByVal sender As Object,ByVal e As System.EventArgs) Handles Me.Load For i = 0 To 3 lblAd(i) = New Label lblAd(i).TextAlign = ContentAlignment.MiddleCenter lblAd(i).Top = 100 ''随便给的位置 lblAd(i).Left = 100 ''随便给的位置 lblAd(i).Visible = True lblAd(i).AutoSize = false lblAd(i).Name = i lblAd(i).Text = i lblAd(i).Show() Me.Controls.Add(lblAd(i)) Next ''********************************************************** For i = 0 To 2 Timer_BaoJing(i) = New System.Timers.Timer Timer_BaoJing(i).AutoReset = True AddHandler Timer_BaoJing(i).Elapsed,AddressOf BaoJing_Timer Timer_BaoJing(i).Interval = 1000 * i + 3000 Timer_BaoJing(i).Enabled = True Next End Sub Private Sub BaoJing_Timer(ByVal sender As Object,ByVal e As System.Timers.ElapsedEventArgs) For i = 0 To 2 If sender.Equals(Timer_BaoJing(i)) Then a = i lblAd(i).BACkColor = Color.blue ''到这里就出错了,线程之间的问题 End If Next End Sub __________________________________________________________________________ 请问怎么在这个timer的事件里控制别的控件!??? __________________________________________________________________________ Public Class Form1 Private Timer_BaoJing(3) As System.Timers.Timer Private lblAd(3) As Label Private i As Integer Private Sub Form1_Load(ByVal sender As Object,ByVal e As System.EventArgs) Handles Me.Load For i = 0 To 3 lblAd(i) = New Label lblAd(i).TextAlign = ContentAlignment.MiddleCenter lblAd(i).Top = 100 * i ''随便给的位置 lblAd(i).Left = 100 ''随便给的位置 lblAd(i).Visible = True lblAd(i).AutoSize = false lblAd(i).Name = i lblAd(i).Text = i lblAd(i).Show() Me.Controls.Add(lblAd(i)) Next ''********************************************************** For i = 0 To 2 Timer_BaoJing(i) = New System.Timers.Timer Timer_BaoJing(i).AutoReset = True AddHandler Timer_BaoJing(i).Elapsed,AddressOf BaoJing_Timer Timer_BaoJing(i).Interval = 1000 * i + 1000 Timer_BaoJing(i).Enabled = True Next End Sub Private Sub BaoJing_Timer(ByVal sender As Object,ByVal e As System.Timers.ElapsedEventArgs) For i = 0 To 2 If sender.Equals(Timer_BaoJing(i)) Then ''a = i lblAd(i).BACkColor = Color.blue ''到这里就出错了,线程之间的问题 End If Next End Sub End Class 代码没什么大问题,定义一下变量i,屏蔽无用代码a=i后 可以正常运行啊。 __________________________________________________________________________ 如果有线程之间的问题,可以使用委托的方式,如: Public Class Form1 Private Timer_BaoJing(3) As System.Timers.Timer Private lblAd(3) As Label Private i As Integer Private Sub Form1_Load(ByVal sender As Object,ByVal e As System.Timers.ElapsedEventArgs) For i = 0 To 2 If sender.Equals(Timer_BaoJing(i)) Then ''a = i ''lblAd(i).BACkColor = Color.blue ''到这里就出错了,线程之间的问题 Me.Invoke(New MySub(AddressOf ChangeBACkColor),i) ''使用委托的方法 End If Next End Sub Private Delegate Sub MySub(ByVal i As Integer) Private Sub ChangeBACkColor(ByVal i As Integer) lblAd(i).BACkColor = Color.blue End Sub End Class __________________________________________________________________________ 用SELEct case sender.tabindex end SELEct 这样的选择结构 __________________________________________________________________________

大佬总结

以上是大佬教程为你收集整理的[VB.NET]有关控件组的问题!全部内容,希望文章能够帮你解决[VB.NET]有关控件组的问题!所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。