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 に答える