2012-12-13 7 views
8

Per risolvere un problema di sfarfallio, ho fatto ricorso all'applicazione WS_EX_COMPOSITED in un'app Winforms. Funziona perfettamente fino a quando un controllo struttura a schede ottiene così tante schede che crea le "frecce di scorrimento". A questo punto, la mia intera applicazione sembra costantemente ridisegnata con scintillio e sfarfallio ovunque.WS_EX_COMPOSITED fa sì che l'intera app sfarfallio/luccichio quando il controllo scheda ha troppe schede

Per vedere se era solo la mia app, ho scritto un semplice programma winforms per testarlo. Tutto ciò che contiene è un controllo a schede con un pulsante che aggiunge una scheda e il modulo su è abilitato per WS_EX_COMPOSITED ... E in effetti, lo sfarfallio si verifica quando faccio clic sul pulsante Aggiungi e compaiono le frecce di scorrimento.

Il controllo della scheda multilinea risolve questo problema, ma non ho spazio nell'app per usarlo. Il codice è molto semplice per la mia prova app ... appena aggiunto uno scheda di un pulsante, quindi nella forma ha fatto:

 protected override CreateParams CreateParams 
    { 
     get 
     { 
      CreateParams cp = base.CreateParams; 
      cp.ExStyle |= 0x02000000; // Turn on WS_EX_COMPOSITED 
      return cp; 
     } 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     this.tabControl1.TabPages.Add("SomeTab"); 
    } 

sto correndo Win7 se quello che conta.

risposta

Problemi correlati