1

当我有一个包含 46 个项目的列表视图,其中每个项目有 4 个子项目,子项目的值随时间变化时,当使用此代码选择列表视图中的项目时,我使用子项目的值绘制饼图:

Chart1.Series("Series1").ChartType = SeriesChartType.Pie
Chart1.Series("Series1").Points.Clear()

If ListView3.FocusedItem.SubItems(1).Text > 0 Then
    Chart1.Series("Series1").Points.AddY(ListView3.FocusedItem.SubItems(1).Text)
End If
If ListView3.FocusedItem.SubItems(2).Text > 0 Then
    Chart1.Series("Series1").Points.AddY(ListView3.FocusedItem.SubItems(2).Text)
End If
If ListView3.FocusedItem.SubItems(3).Text > 0 Then
    Chart1.Series("Series1").Points.AddY(ListView3.FocusedItem.SubItems(3).Text)
End If
If ListView3.FocusedItem.SubItems(4).Text > 0 Then
    Chart1.Series("Series1").Points.AddY(ListView3.FocusedItem.SubItems(4).Text)
End If

有没有办法检测子项值的变化?类似于onchange文本框中的事件,但对于项目或子项目,因为我希望饼图在子项目值更改时更新。此代码更改子项目

For xx As Integer = 0 To ListView3.Items.Count - 1
                If ListView3.Items(xx).SubItems(0).Text = googleXMLdocument...<s:name>(j).Value Then

                    If j + 1 = 1 Then
                        ListView3.Items(xx).SubItems(1).Text += 1

                    End If
                    If j + 1 = 2 Then
                        ListView3.Items(xx).SubItems(2).Text += 1
                    End If
                    If j + 1 = 3 Then
                        ListView3.Items(xx).SubItems(3).Text += 1
                    End If
                    If j + 1 > 4 Then
                        ListView3.Items(xx).SubItems(4).Text += 1
                    End If
                End If

            Next
4

1 回答 1

1

试试这个代码。这样,如果子项目有任何变化,图表将自动更新。您不需要计时器。

For xx As Integer = 0 To ListView3.Items.Count - 1
    If ListView3.Items(xx).SubItems(0).Text = googleXMLdocument...<s:name>(j).Value Then
        If j + 1 = 1 Then
            ListView3.Items(xx).SubItems(1).Text += 1
        End If
        If j + 1 = 2 Then
            ListView3.Items(xx).SubItems(2).Text += 1
        End If
        If j + 1 = 3 Then
            ListView3.Items(xx).SubItems(3).Text += 1
        End If
        If j + 1 > 4 Then
            ListView3.Items(xx).SubItems(4).Text += 1
        End If
    End If
Next

将下面的代码放在上述代码之后的循环中。你也可以取消FocusedItem

Chart1.Series("Series1").Points.Clear()

Chart1.Series("Series1").Points.AddY (ListView3.FocusedItem.SubItems(1).Text)
Chart1.Series("Series1").Points.AddY (ListView3.FocusedItem.SubItems(2).Text)
Chart1.Series("Series1").Points.AddY (ListView3.FocusedItem.SubItems(3).Text)
Chart1.Series("Series1").Points.AddY (ListView3.FocusedItem.SubItems(4).Text)
于 2012-07-15T02:40:03.750 回答