Autor Beitrag
texMan
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Mi 24.01.18 19:31 
Hallo zusammen,

ich habe noch eine Frage.

Wie kann ich das Flackern, das beim Aktualisieren der Controls entsteht, unterdrücken?
Z.B. mYForm.SuspendLayout() funktioniert leider nicht.

Grüße
Jürgen

Moderiert von user profile iconTh69: C#-Tags hinzugefügt
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mi 24.01.18 19:39 
Da gibt es keine wirkliche allgemeine Lösung. Du mußt uns schon sagen was für ein Control gemeint ist und was du ungefähr machst (ein Label oft zu aktualsieren ist was anderes als eine selbstgezeichnete Animation auf ein Panel zu bekommen).

Im Zweifel bräuchten wir auch Code um das nachstellen zu können. Im schlimmsten Fall ist das auch kein richtiges Winforms Problem sondern eins das mit speziellen Treibern/Graphikkarten auftritt.
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mi 24.01.18 19:53 
texMan Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Mi 24.01.18 19:59 
Echt super wie schnell man hier Hilfe bekommt.

Es handelt sich um ein ActiveX-Control in dem Dokumente geladen und gespeichert werden. Teilweise mehere Durchgänge hintereinander. Dabei wir jedesmal auch das ActiveX-Control aktualisiert.
texMan Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Do 25.01.18 10:32 
user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
Schau mal die Möglichkeiten in [Artikel] Flackernde Controls und flackerndes Zeichnen vermeiden durch.

Leider wird die SetStyle() Methode von dem ActiveX-Control nicht unterstützt.
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Do 25.01.18 11:49 
ActiveX-Controls sind ja auch keine auf WinForms-Control basierenden Elemente, sondern auf COM.

Probiere mal
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
protected override CreateParams CreateParams
{
    get
    {
        CreateParams handleParam = base.CreateParams;
        handleParam.ExStyle |= 0x02000000// WS_EX_COMPOSITED
        return handleParam;
    }
}
in der Form-Klasse (dies kann aber auch weitere negative Effekte auf andere Controls der Form haben). Du könntest auch mal nach "activeX erase background" suchen (das ist der häufigste Fall bezüglich des Flickerns).

Ist es denn zwingend erforderlich, daß das ActiveX-Control so häufig aktualisiert werden muß? Geht es um "Batch"-Vorgänge? Muß der User das dann alles zwingend sehen (wäre evtl. ein unsichtbares ActiveX-Control nicht auch möglich)?