8

ちらつきの問題を解決するため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を実行しています。

4

1 に答える 1

1

この質問への回答をご覧ください WS_EX_COMPOSITED を使用したちらつきのないタブ コントロール

回避するには少し時間がかかる場合がありますが、役立つはずです。

于 2013-05-06T23:12:26.650 に答える