Guten Abend alle zusammen,
ich bin per google auf die Klasse zum erstellen einer Progressbar in einem Listview gestoßen:
Spoiler anzeigen
Nun habe ich das Problem, dass wenn ich eine Progressbar einfügen will folgende Fehlermdlung kommt:
EDIT: Der Fehler tritt in der Zeile auf: pb.Top = Me.Items(Row).Bounds.Top
der dazugehörige Code sieht so aus
Ich kapiere einfach nicht wo der Fehler liegt , hoffe ihr könnt mir helfen
Gruß
prophet
ich bin per google auf die Klasse zum erstellen einer Progressbar in einem Listview gestoßen:
VB.NET-Quellcode
- 'By: Nathan72389
- 'Listview with progresbar
- Public Class nListView
- #Region "Dec.."
- Inherits Windows.Forms.ListView
- Private Pbar As New Dictionary(Of PbarData, ProgressBar)
- Private Structure PbarData
- Dim Tag As String
- Dim Column As Integer
- End Structure
- #End Region
- #Region "Overrides"
- Protected Overrides Sub OnColumnWidthChanged(ByVal e As System.Windows.Forms.ColumnWidthChangedEventArgs)
- PbarSize_changed()
- End Sub
- Protected Overrides Sub OnColumnWidthChanging(ByVal e As System.Windows.Forms.ColumnWidthChangingEventArgs)
- PbarSize_changed()
- End Sub
- Protected Overrides Sub OnColumnReordered(ByVal e As System.Windows.Forms.ColumnReorderedEventArgs)
- PbarSize_changed()
- End Sub
- #End Region
- #Region "Subs"
- Public Sub New()
- Me.DoubleBuffered = True
- End Sub
- Public Sub AddProgressBar(ByVal ProgressBarName As String, ByVal Row As Integer, ByVal Column As Integer)
- For Each P As PbarData In Pbar.Keys
- If P.Tag = ProgressBarName Then Throw New DuplicateNameException
- Next
- Dim pb As New ProgressBar
- pb.Top = Me.Items(Row).Bounds.Top
- pb.Left = Me.Items(Row).SubItems(Column).Bounds.Left
- pb.Width = Me.Columns(Column).Width
- pb.Height = Me.Items(Row).SubItems(Column).Bounds.Height
- Dim Pdata As New PbarData
- Pdata.Tag = ProgressBarName
- Pdata.Column = Column
- Me.Controls.Add(pb)
- Pbar.Add(Pdata, pb)
- End Sub
- Public Sub RemoveProgressBar(ByVal ProgressBarName As String)
- For Each ctrl As Control In Me.Controls
- If ctrl.Tag = ProgressBarName Then
- Me.Controls.Remove(ctrl)
- For Each F As PbarData In Pbar.Keys
- If F.Tag = ProgressBarName Then Pbar.Remove(F)
- Next
- End If
- Next
- End Sub
- Public Sub UpdateProgressBar(ByVal ProgressBarName As String, ByVal Value As Integer)
- For Each P As PbarData In Pbar.Keys
- If ProgressBarName = P.Tag Then
- Pbar(P).Value = Value
- End If
- Next
- End Sub
- Private Sub PbarSize_changed()
- For Each P As PbarData In Pbar.Keys
- Dim X As Integer
- For i As Integer = 0 To Me.Columns.Count - 1
- If Not i = P.Column Then
- X += Me.Columns(i).Width
- Else
- Pbar(P).Left = X
- Pbar(P).Width = Me.Columns(i).Width
- Exit For
- End If
- Next
- X = 0
- Next
- End Sub
- #End Region
- End Class
Nun habe ich das Problem, dass wenn ich eine Progressbar einfügen will folgende Fehlermdlung kommt:
InvalidArgument=Value mit dem Wert 1 ist für index ungültig.
Parametername: index
EDIT: Der Fehler tritt in der Zeile auf: pb.Top = Me.Items(Row).Bounds.Top
der dazugehörige Code sieht so aus
VB.NET-Quellcode
- Dim pblistview As New nListView
- Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
- Dim progrebar(ListView1.Items.Count - 1) As ProgressBar
- Dim i As Integer = 0
- For Each bar In progrebar
- pblistview.AddProgressBar("Progressbar" & i, i + 1, 3)
- i += 1
- Next
- End Sub
Ich kapiere einfach nicht wo der Fehler liegt , hoffe ihr könnt mir helfen
Gruß
prophet
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „prophet“ ()