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-2025
 
zurück

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

VB.NET - Fortgeschrittene
My.DebugWindow.WriteLine()  
Autor: TobiasS
Datum: 15.05.10 11:59

Hallo alle zusammen,

ich hab mir ein kleines Stück code geschrieben, mit dem ich "von überall" in ein Debug-Window schreiben kann, allerdings funktioniert das nicht mehr, wenn ein anderer thread als der GUI eigene die funktion aufruft, beispielsweise ein BackGroundWorker ...

Wie kann ich das ermöglichen? Mit "Delegate Sub... .InvokeRequired" hab ich es schon probiert. Es kommt nict an der Listview an und eine Ausnahme bekomm ich auch nicht ausgelöst.

Hat einer ne Idee? Oder eine andere Lösung? (Debug-Output umleiten... ja, dann hab ich aber den ganzen output, zudem bekomm ich den auch nicht formatiert in eine Listview, ich möchte nur meine eigenen Meldungen in dem Listview anzeigen, alle anderen debug-infos fließen weiter hin in eine Textdatei...)



Der Aufruf erfolgt ziemlich einfach:

My.DebugWindow.WriteLine("Test", New Font("Arial", 10, FontStyle.Bold, _
  GraphicsUnit.Point), Color.Red)
Namespace My
 
    Public Module DebugWindow
 
        Public Sub WriteLine(ByVal Text As String, ByVal Schrift As Font, ByVal _
          Farbe As Color)
 
            With Form1.ListView1
                Do Until .Items.Count <= 50
                    .Items.RemoveAt(0)
                Loop
                Dim lstvitem As New ListViewItem(Date.Now.ToString & ": " & _
                  Text)
                lstvitem.ForeColor = Farbe
                lstvitem.Font = Schrift
                .Items.Add(lstvitem)
                .Items(.Items.Count - 1).EnsureVisible()
                If Form1.Visible = True Then .Update()
            End With
 
        End Sub
 
 
        Public Sub WriteLine(ByVal Text As String)
 
            With Form1.ListView1
                Do Until .Items.Count <= 50
                    .Items.RemoveAt(0)
                Loop
                Dim lstvitem As New ListViewItem(Date.Now.ToString & ": " & _
                  Text)
                .Items.Add(lstvitem)
                .Items(.Items.Count - 1).EnsureVisible()
                If Form1.Visible = True Then .Update()
            End With
 
        End Sub
 
    End Module
 
End Namespace
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
My.DebugWindow.WriteLine() 1.192TobiasS15.05.10 11:59
Re: My.DebugWindow.WriteLine()843ModeratorFZelle15.05.10 12:45
Re: My.DebugWindow.WriteLine()881TobiasS15.05.10 16:22
Re: My.DebugWindow.WriteLine()835ModeratorDaveS15.05.10 16:32
Re: My.DebugWindow.WriteLine()814TobiasS15.05.10 16:44
Re: My.DebugWindow.WriteLine()842TobiasS15.05.10 16:41

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-2025 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