ちらつきの問題を解決するためWS_EX_COMPOSITED
に、winforms アプリで使用することにしました。これは、タブ コントロールが「スクロール矢印」を作成するほど多くのタブを取得するまで、完全に機能します。この時点で、アプリケーション全体が常に再描画され、あちこちでちらつきやちらつきが発生しているように見えます。
それが私のアプリであるかどうかを確認するために、簡単な winforms プログラムを作成してテストしました。含まれているのは、タブを追加するボタンを備えたタブコントロールと、そのフォームがWS_EX_COMPOSITED
有効になっていることだけです...そして、追加ボタンをクリックしてスクロール矢印が表示されると、ちらつきが発生します。
複数行タブ コントロールはこれを修正しますが、アプリにそれを使用する余地がありません。私のテストアプリのコードは本当にシンプルです...タブページとボタンを追加しただけで、フォームは次のようになりました:
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");
}
それが問題なら、私はwin7を実行しています。