2017-10-27 4 views
1

Ich habe unten Formular, wo ich mehrere Steuerelemente in Tablayout Panel haben, wie in Bild gezeigt.Tablayout-Panel dauert zu lange Zeit zu laden

enter image description here

seine zu lange Zeit (und flackern auch), wenn ich dieses Formular laden.

ich probierte: Ich wähle CellBorderStyle als eine 'None' so, dass Moment habe ich nicht beobachtet dieses Problem, aber der Moment ich wähle einen CellBorder Stil abgesehen von 'None' erscheint es.

PS; Ich habe beim Laden des Formulars keine Operation ausgeführt. Ich versuche nur, das ursprüngliche Formular zu laden.

+0

Sie die Antwort als Teil der Frage nicht veröffentlichen, wird die aktuelle akzeptierte Antwort Unsinn machen und macht die Post verwirrend. Sie haben eine Antwort akzeptiert und es ist genug für die Post. Wenn Sie eine vollständigere Antwort erhalten möchten, senden Sie eine Antwort mit der Schaltfläche Ihre Antwort posten. –

+0

@RezaAghaei Ich habe die Antwort aus der Frage entfernt. Vielen Dank. –

+0

Großartig! Viel besser jetzt :) –

Antwort

1

Probieren Sie die DoubleBuffered-Eigenschaft aus, um Flimmern zu vermeiden. Sie müssen eine Unterklasse aus TableLayoutPanel erstellen, um die DoubleBuffered-Eigenschaft auf true festzulegen.

+0

Vielen Dank. Ich habe versucht mit DoubleBuffered Eigenschaft und seine Werke !! Ich habe meine Frage mit Antwort aktualisiert –

1

Unten ist die vollständige Antwort, wie Tor vorgeschlagen.

public static void SetDoubleBuffered(System.Windows.Forms.Control c) 
{ 

    if (System.Windows.Forms.SystemInformation.TerminalServerSession) 
     return; 

    System.Reflection.PropertyInfo aProp = 
      typeof(System.Windows.Forms.Control).GetProperty(
       "DoubleBuffered", 
       System.Reflection.BindingFlags.NonPublic | 
       System.Reflection.BindingFlags.Instance); 

    aProp.SetValue(c, true, null); 
} 

i genannt upperfunction von Form Constructor

SetDoubleBuffered("tablayoutPanelName");