Ja, von Zeit für die Forschung ausgeben ich weiß, dassIterate durch Timer dann ihre Namen bekommen
Ein Timer ist eine Komponente nicht eine Kontrolle, so dass es nicht in der Steuersammlung wird. Dies ist ein Fall, wo es wahrscheinlich besser ist, nicht verwenden Sie eine allgemeine Schaltfläche Click-Handler, da es nicht vereinfacht alles ist. (Source)
Aber, gibt es etwas, was ich tun kann, um meine derzeitige Situation zu bestehen?
Was ich will, ist, wenn ein Benutzer auf eine Schaltfläche klickt (Ich habe viele Tasten) wird es festzustellen, ob der Status dieser Taste Start
oder Stop
dann, wenn es stop
es sollte start
ist.
Stop und Start entsprechen dem Timer, die Anzahl der Tasten entspricht der Anzahl der Timer, die ich habe.
Ich kann verknüpft sie leicht durch eine Funktion wie diese
SchaffungFunction isBTNStatusEnabled(sender As Object) As Boolean
Dim result As Boolean = False
Dim btnStatus As Button = DirectCast(sender, Button)
Dim btnStatusNumber As String = btnStatus.Name.Substring(btnStatus.Name.Length - 1)
Console.WriteLine("Found the " & btnStatus.Name)
If btnStatus.Text = "Start" Then
btnStatus.Text = "Stop"
result = True
btnStatus.BackColor = Color.Red
Else
btnStatus.Text = "Start"
result = False
btnStatus.BackColor = SystemColors.Control
End If
For Each frmTesterObjects As Object In Me.components.Components
If TypeOf frmTesterObjects Is Timer And DirectCast(frmTesterObjects, Timer).Tag.ToString = "tmrString" & btnStatusNumber Then
'what to do
Console.WriteLine("Timer name: " & DirectCast(frmTesterObjects, Timer).Tag.ToString)
End If
Next frmTesterObjects
Return result
End Function
Mein Problem ist, dieser Teil des Codes
If TypeOf frmTesterObjects Is Timer And DirectCast(frmTesterObjects, Timer).Tag.ToString = "tmrString" & btnStatusNumber Then
Console.WriteLine("Timer name: " & DirectCast(frmTesterObjects, Timer).Tag.ToString)
End If
ich durch Iterieren durch alle den Namen des Timers zu bekommen versuche Objekte in meinen Formen. Ich kann leicht alle Objekte gruppieren, indem ich sie richtig benenne, zum Beispiel in set 1
Ich habe btnStatus1
und tmrString1
dann in set 2
Ich habe btnStatus2
und tmrString2
, nur die letzte Zeichenkette, die eine Zahl ändert.
Möchten Sie stattdessen "Tag" verwenden? –
Wenn "Tag" mir helfen wird, den Namen des Timers zu bekommen, ist es okay. :) In meinem Code versuche ich nur das 'Tag' zu verwenden, weil jemand es vorgeschlagen hat. –
In Ihrem Fall sieht Ihr Code mit 'Tag' gut aus. Alles, was Sie jetzt tun müssen, ist das "Tag" Ihrer Timer einzeln zu ändern. –