我想在文本字段中指定要添加到表单中的计时器数量,并指定应该进入计时器的代码。
例如:我的文本框显示“2”然后我单击一个按钮,它会创建两个计时器并为两个计时器添加一个特定的源代码。
我尝试过不同的代码,但是当他们工作时,我无法指定要创建的表单上的控件数量。
如何有效地实现这一目标?
由于
答案 0 :(得分:0)
在这种情况下,我使用了一个包含NumericUpDown控件元素,一个按钮和一个标签的表单,以及两个只包含文本的标签。See this picture
要创建计时器,我使用函数rightNodes
,如下所示:
add_timers(timercount)
当Function add_timers(timercount As Integer)
'Using a loop to creat <timercount> timers
For g As Integer = 1 To timercount
'Creating new timer 't'
Dim t As New Timer()
'setting interval of t
t.Interval = 1000
'Enabling timer
t.Enabled = True
'Code which runs when t ticks
AddHandler t.Tick, AddressOf TimerTick
Next
End Function
按下开始按钮时,会调用此函数。它使用Button1
作为函数的参数。该函数使用循环来创建新的计时器NumericUpDown1.Value
,设置它们的间隔以及在它们打勾时运行的代码。
不幸的是,我没有找到动态创建代码的方法,因此每个计时器都执行相同的操作。以巧妙的方式使用数组和循环可能使您可以为每个计时器使用不同的值。要为计时器创建代码,请使用Sub:
t
我使用的完整代码是:
Sub TimerTick(ByVal sender As Object, e As EventArgs)
'Add your code here
Label1.Text += 1
End Sub
可以将计时器打包到数组中,这样您就可以轻松地使用其索引访问每个计时器。在互联网上搜索它,如果你不知道怎么做,请在评论中告诉我。
答案 1 :(得分:0)
只需创建一个计时器
Public Class Form1
private _timer as Windows.Forms.Timer
...
Public Sub New()
...
_timer = New Timer(Me)
_timer.Interval = 1000 'Timer will trigger one second after start
AddHandler _timer.tick, AddressOf Timer_tick 'Timer will call this sub when done
End Sub
Sub Button_click(sender as Object, e as EventArgs)
_timer.Start() 'Start the timer
...
End Sub
Private Sub Timer_tick(sender as Object, e as EventArgs)
MessageBox.Show("Timerrr!!")
End Sub
...
End Class
现在,如果要创建多个计时器,可以使用Timer数组。