点击按钮,我试图检查列表视图中的现有行。
Private Sub Button8_Click(sender As Object, e As EventArgs) Handles
Button8.Click
If ListViewExtended1.Items.Count >= 0 Then
timer_firstROW.Enabled = True
Else
timer_firstROW.Enabled = False
End If
If ListViewExtended1.Items.Count >= 1 Then
timer_SecondRow.Enabled = True
Else
timer_SecondRow.Enabled = False
End If
If ListViewExtended1.Items.Count >= 2 Then
Timer_ThirdRow.Enabled = True
Else
Timer_ThirdRow.Enabled = False
End If
End Sub
问题是我在计时器的子
中得到了一个无效的参数exception = 1 Private Sub timer_SecondRow_Tick(sender As Object, e As EventArgs) Handles
timer_SecondRow.Tick
timer_SecondRow.Interval = ListViewExtended1.Items(1).SubItems(3).Text
End Sub
所有定时器默认都是禁用的,所以当我们检查if else语句并且listview中只有1个索引为0的项时,我得到了该异常,这意味着启用了定时器,但为什么......
我尝试编写代码,将检查listview中的现有行,如果存在行,则启用定时器,然后定时器将发送连续消息thourgh serial。如果存在3行,则将启用3行计时器,并且发送具有间隔的消息将分配“ListViewExtended1.Items(1).SubItems(3).Text”。计时器代码:
Private Sub Timer4_Tick(sender As Object, e As EventArgs) Handles
timer_firstROW.Tick
timer_firstROW.Interval = ListViewExtended1.Items(0).SubItems(3).Text
count_for_rx = ListViewExtended1.Items(0).SubItems(4).Text + 1
ListViewExtended1.Items(0).SubItems(4).Text = count_for_rx
GetValueFromlv2Row = "434D4431" & ListViewExtended1.Items(0).SubItems(0).Text & ListViewExtended1.Items(0).SubItems(1).Text & ListViewExtended1.Items(0).SubItems(2).Text.Replace(" ", "")
Dim count As Short
Dim bytestosend(0) As Byte
For count = 1 To GetValueFromlv2Row.Length Step 2 'For count = 249 To Text4.Text * 2 Step 8 page 32
bytestosend(0) = CLng("&H" & Mid(GetValueFromlv2Row, count, 2))
spObj.Write(bytestosend, 0, bytestosend.Length)
Next
spObj.Write(Microsoft.VisualBasic.ControlChars.Cr)
End Sub
Private Sub timer_SecondRow_Tick(sender As Object, e As EventArgs)
Handles timer_SecondRow.Tick
If Not ListViewExtended1.Items(1).ToString() = "" Then
timer_SecondRow.Interval =
ListViewExtended1.Items(1).SubItems(3).Text
count_for_rx = ListViewExtended1.Items(1).SubItems(4).Text + 1
ListViewExtended1.Items(1).SubItems(4).Text = count_for_rx
GetValueFromlv2Row = "434D4431" &
ListViewExtended1.Items(1).SubItems(0).Text &
ListViewExtended1.Items(1).SubItems(1).Text &
ListViewExtended1.Items(1).SubItems(2).Text.Replace(" ", "")
Dim count As Short
Dim bytestosend(0) As Byte
For count = 1 To GetValueFromlv2Row.Length Step 2 'For count = 249
To Text4.Text * 2 Step 8 page 32
bytestosend(0) = CLng("&H" & Mid(GetValueFromlv2Row, count, 2))
spObj.Write(bytestosend, 0, bytestosend.Length)
Next
spObj.Write(Microsoft.VisualBasic.ControlChars.Cr)
Else
timer_SecondRow.Enabled = False
End If
End Sub
Private Sub Timer_ThirdRow_Tick(sender As Object, e As EventArgs) Handles
Timer_ThirdRow.Tick
Timer_ThirdRow.Interval = ListViewExtended1.Items(2).SubItems(3).Text
count_for_rx = ListViewExtended1.Items(2).SubItems(4).Text + 1
ListViewExtended1.Items(2).SubItems(4).Text = count_for_rx
GetValueFromlv2Row = "434D4431" &
ListViewExtended1.Items(2).SubItems(0).Text &
ListViewExtended1.Items(2).SubItems(1).Text &
ListViewExtended1.Items(2).SubItems(2).Text.Replace(" ", "")
Dim count As Short
Dim bytestosend(0) As Byte
For count = 1 To GetValueFromlv2Row.Length Step 2 'For count = 249 To
Text4.Text * 2 Step 8 page 32
bytestosend(0) = CLng("&H" & Mid(GetValueFromlv2Row, count, 2))
spObj.Write(bytestosend, 0, bytestosend.Length)
Next
spObj.Write(Microsoft.VisualBasic.ControlChars.Cr)
End Sub