Announcement

Collapse
No announcement yet.

Windows Forms Listview Flackert

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Windows Forms Listview Flackert

    Hallo,

    ich habe in meiner Application ein Listview das sich nach einem gewissen Pollinterval aktualisiert. Doof ist jetzt das es dabei flackert. Vermutlich passiert dies, weil der Thread, der die Liste mit Daten füllt wärend der Füllung von dem Thread der das GUI zeichnet, unterbrochen wird. Gibt es eine Möglichkeit das weg zu bekommen?

    mfg
    Zebes

  • #2
    Hallo,

    Möglicherweise bringt es eine Verbesserung, wenn du die gesammelten Daten bufferst und das Listview vom GUI Thread befüllen läßt.
    Grüße,

    Martin

    Comment


    • #3
      Gibts nicht wie in Delphi ein BeginUpdate/EndUpdate?

      Comment


      • #4
        Hallo,

        SuspendLayout();
        ResumeLayout();
        Grüße,

        Martin

        Comment


        • #5
          hey das mit suspend heist das es solange nicht neu gezeichnet wird? hört sich gut an danke.

          mfg
          Zebes

          Comment


          • #6
            Hallo,
            Originally posted by Zebes View Post
            hey das mit suspend heist das es solange nicht neu gezeichnet wird?
            Ja genau!

            Wird übrigens auch vom Designer (designer generierter code) verwendet. (InitializeComponents)

            Was du übrigens auch versuchen könntest, ist das DoubleBuffering.
            Wird mittels SetStyle methode der Control classe initialisiert.
            Da gibt es eine Menge Beispiele im Netz!

            Hoffe es hilft dir weiter!
            Grüße,

            Martin

            Comment


            • #7
              DoubleBuffering hilft auf alle Fälle.
              Code:
              SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
              Am besten auch gleich noch die anderen Möglichkeiten von SetStyle ansehen.
              .NET GUI - DIE Community für GUI-Entwickler

              Living.NET - Blog :: Live Blog :: .NET Casts

              Hol' dir jetzt dein kostenloses .NET BlogBook.

              Comment


              • #8
                suspend hat leider nicht geholfen und um das doublebuffering einzuschalten muss ich anscheinen meine eigene classe ableiten da die methode SetStyle protected ist. bzw hab eich das shcon versucht nur leider hat es nichts gebracht.

                mfg
                Zebes

                Comment


                • #9
                  Hallo,

                  Also die SetStyle methode kannst du bei jeder von Control abgeleitenen Klasse aufrufen.
                  Dieser article auf CodeProject ist einer der besten, den ich über dieses Thema bis jetzt gelesen habe:
                  http://www.codeproject.com/csharp/DoubleBuffering.asp

                  Hoffe es hilft dir weiter.

                  Also bis dann
                  Grüße,

                  Martin

                  Comment


                  • #10
                    ja abgeleitete klassen haben einen zugriff darauf aber settyle bleibt protected was ich zimlich doof finde naja muss ich mir meine eigene klasse erstellen

                    danke ich werde da mal ausprobieren.

                    mfg
                    Zebes

                    Comment

                    Working...
                    X