vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 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
Beispiel mit einer Datentabelle 
Autor: Manfred X
Datum: 09.02.16 11:10

Ansonsten:
Sperre ggf. temporär die Ereignishandler der ListView-Events,
die Du erstellt hast.

Wenn die Datenmengen überschaubar sind und die
Geschwindigkeit nicht zu schnell ist, kannst Du diese
Variante probieren.

Public Class frmBackground_II
 
    Dim dt As New DataTable
    Dim bs As New BindingSource With {.RaiseListChangedEvents = True}
 
    Dim dgv As New DataGridView With {.Parent = Me, .DataSource = bs, _
                         .AllowUserToAddRows = False, .ReadOnly = True}
 
 
    Dim createdata As New Threading.Thread(AddressOf CreateDataRows)
 
 
    Private Sub frmBackground_II_Load(sender As System.Object, _
                            e As System.EventArgs) Handles MyBase.Load
 
        Me.DoubleBuffered = True
 
        'Tabellen-Spalten erstellen
        dt.Columns.Add("ID", GetType(Integer))
        For i As Integer = 1 To 10
            dt.Columns.Add("SP" & CStr(i))
        Next i
 
        Me.Size = New Size(500, 500)
        Me.Show()
 
        bs.DataSource = dt
 
        'Prozess für schnelle Datenerzeugung
        createdata.Start()
 
 
    End Sub
 
 
    Private Sub CreateDataRows()
        Dim rndm As New Random, id, lastid As Integer
 
        Do
            id += 1
            Dim waittime As Integer = CInt(rndm.NextDouble * 10)
            Threading.Thread.Sleep(waittime)
 
            'neue Zeile mit Daten füllen 
            Dim row As DataRow = dt.NewRow
            row(0) = id
            For i As Integer = 1 To 10
                row(i) = i.ToString & ": " & id.ToString
            Next i
            dt.Rows.Add(row)
 
 
            If id > lastid + 20 Then
                Me.Invoke(New MethodInvoker(AddressOf showdata))
                lastid = id
            End If
        Loop While id < 100000
    End Sub
 
 
    Private Sub showdata()
        SyncLock bs.SyncRoot
            bs.ResetBindings(False)
            dgv.Update()
            dgv.FirstDisplayedScrollingRowIndex = bs.Count - 1
        End SyncLock
    End Sub
End Class


Beitrag wurde zuletzt am 09.02.16 um 11:30:03 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Listview Aktualisierungszeit und Backgroundworker2.399FEF08.02.16 11:06
Re: Listview Aktualisierungszeit und Backgroundworker1.751Manfred X08.02.16 12:20
Re: Listview Aktualisierungszeit und Backgroundworker1.815FEF08.02.16 13:45
Re: Listview Aktualisierungszeit und Backgroundworker1.814Manfred X08.02.16 14:00
Beispiel mit zwei Datentabellen1.728Manfred X08.02.16 15:35
Re: Beispiel mit zwei Datentabellen1.716FEF08.02.16 18:15
Re: Beispiel mit zwei Datentabellen1.778Manfred X08.02.16 20:32
Re: Beispiel mit zwei Datentabellen1.774FEF09.02.16 10:33
Re: Beispiel mit zwei Datentabellen1.758Manfred X09.02.16 10:53
Re: Beispiel mit zwei Datentabellen1.689FEF09.02.16 11:02
Beispiel mit einer Datentabelle1.943Manfred X09.02.16 11:10
Re: Listview Aktualisierungszeit und Backgroundworker1.737FEF10.02.16 18:24
Re: Listview Aktualisierungszeit und Backgroundworker1.705Manfred X11.02.16 06:52

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