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.