vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Daten-Liste an Listbox binden 
Autor: Manfred X
Datum: 26.07.21 13:29

Warum nicht so?
Code in ein neues Winforms-Formular kopieren
Datenbindung einer Liste (myData) an eine Listbox (lboData),
deren Items per Code gezeichnet werden (DrawItem-Event)
Im Beispiel werden neue Daten per Random im Timer-Event ergänzt.

Public Class frmRunningList
 
    Dim WithEvents lboData As New ListBox With
        {.Parent = Me, .Top = 10, .Left = 10, .Width = 100, .Height = 300,
        .DrawMode = DrawMode.OwnerDrawFixed}
 
    Dim bs As New BindingSource   'für steuerbare Datenbindung
 
    Dim myData As New List(Of Decimal)  'Daten-Liste
 
    Dim WithEvents timData As New Timer With {.Interval = 1000}
 
    Dim rndm As New Random(123456)  'Datenlieferant
 
 
    Private Sub frmRunningList_Load(sender As Object, e As EventArgs) _
        Handles MyBase.Load
 
        'Datenbindung einrichten
        bs.DataSource = myData
        lboData.DataSource = bs
 
        timData.Enabled = True
    End Sub
 
 
    Private Sub timData_Tick(sender As Object, e As EventArgs)_
            Handles timData.Tick
 
        'Listenlänge auf 10 begrenzen 
        If myData.Count = 10 Then myData.RemoveAt(0)
 
        'neuen Zufallswert anfügen an Liste
        myData.Add(CDec(Math.Round(rndm.NextDouble, 2)))
 
        'Datenbindung der Daten-Liste an die Box aktualisieren
        bs.ResetBindings(False)
 
        'aktuellen Mittelwert berechnen
        Dim mw As Decimal
        For i As Integer = 0 To myData.Count - 1
            mw += myData(i)
        Next i
        mw /= myData.Count
 
        Me.Text = "Mittel: " & Math.Round(mw, 2).ToString
    End Sub
 
 
    Private Sub lboData_DrawItem(sender As Object, 
               e As DrawItemEventArgs) Handles lboData.DrawItem
 
 
        If e.Index < 0 Then Exit Sub
 
        'Item in verschiedenen Farben zeichnen
 
        e.DrawBackground()
 
        Dim txt As String = myData(e.Index).ToString
 
        'farbige Pinsel erstellen
        Using redbrush As New SolidBrush(Color.Red),
              greenbrush As New SolidBrush(Color.Green)
 
            'Text-Farbe anhand der Datenausprägung wählen
            'und an die richtige Stelle zeichnen (e.bounds)
            If CDec(txt) > 0.5 Then
              e.Graphics.DrawString(txt & " ", lboData.Font, greenbrush,
              e.Bounds.Location)
            Else
              e.Graphics.DrawString(txt & " ", lboData.Font, redbrush,
              e.Bounds.Location)
            End If
        End Using
    End Sub
End Class


Beitrag wurde zuletzt am 26.07.21 um 13:51:03 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
For Next schleife905flexxer25.07.21 10:09
Re: For Next schleife509Manfred X25.07.21 16:00
Re: For Next schleife497flexxer25.07.21 17:01
Re: For Next schleife456Manfred X25.07.21 18:57
Re: For Next schleife428flexxer25.07.21 19:19
Re: For Next schleife422Manfred X25.07.21 19:31
Re: For Next schleife479flexxer25.07.21 20:41
Re: For Next schleife433Manfred X25.07.21 21:05
Re: For Next schleife402flexxer26.07.21 06:35
Daten-Liste an Listbox binden405Manfred X26.07.21 13:29
Re: For Next schleife336flexxer24.10.21 19:34

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel