hi,
ich habe eine listview in meiner form und möchte diese gern in einer druck Vorschau anzeigen lassen.
soweit so gut. wenn ich versuche mir das ganze anzeigen zu lassen,
bekomme ich eine fehlermeldung: Der Index lag außerhalb des Bereichs. Er muss nicht negativ und kleiner als die Auflistung sein.
hier der code:
dort kommt die fehlermeldung.
die deklarationen:
wie kann ich diesen fehler beheben? danke im Voraus.
mfg chris
ich habe eine listview in meiner form und möchte diese gern in einer druck Vorschau anzeigen lassen.
soweit so gut. wenn ich versuche mir das ganze anzeigen zu lassen,
bekomme ich eine fehlermeldung: Der Index lag außerhalb des Bereichs. Er muss nicht negativ und kleiner als die Auflistung sein.
hier der code:
VB.NET-Quellcode
- ' Header schreiben
- Do
- rf = New Rectangle(PosX, PosY, SpaltenBreite(OffsetSpalte + MerkerSpalte), TextHöhe)
- e.Graphics.FillRectangle(New SolidBrush(HeaderColor), rf)
- If LV.GridLines Then e.Graphics.DrawRectangle(Pens.Black, rf.X, rf.Y, rf.Width, rf.Height)
- e.Graphics.DrawString(LV.Columns(OffsetSpalte + MerkerSpalte).Text, LV.Font, Brushes.Black, rf, sf)
- PosX += SpaltenBreite(OffsetSpalte + MerkerSpalte)
- OffsetSpalte += 1
- Loop Until PageWidth + left < PosX + SpaltenBreite(OffsetSpalte + MerkerSpalte) Or OffsetSpalte + MerkerSpalte > LV.Columns.Count - 1
dort kommt die fehlermeldung.
die deklarationen:
VB.NET-Quellcode
- Private Sub PD_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PD.PrintPage
- e.Graphics.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias
- e.Graphics.TextRenderingHint = Drawing.Text.TextRenderingHint.AntiAlias
- Dim left As Decimal = PD.DefaultPageSettings.Margins.Left
- Dim right As Decimal = PD.DefaultPageSettings.Margins.Right
- Dim top As Decimal = PD.DefaultPageSettings.Margins.Top
- Dim bottom As Decimal = PD.DefaultPageSettings.Margins.Bottom
- Dim PageWidth As Integer = PD.DefaultPageSettings.Bounds.Width - (right + left)
- Dim PageHeight As Decimal = PD.DefaultPageSettings.Bounds.Height - (top + bottom)
- Dim sf As New StringFormat
- sf.Alignment = StringAlignment.Near
- sf.LineAlignment = StringAlignment.Center
- Dim rf As New Rectangle
- Dim br As SolidBrush
- Dim br1 As SolidBrush
- Dim PosX As Integer = left
- Dim PosY As Integer = top
- Dim OffsetSpalte As Integer
- Dim OffsetZeile As Integer
wie kann ich diesen fehler beheben? danke im Voraus.
mfg chris