1

インターフェイスに複数のテキスト ボックスがあり、それらすべてが 1 つのパネルに配置されている Windows アプリケーションを開発しました (パネルには背景画像があります)。

パネルがロードされているときはいつでも、ウィンドウ(これらのテキストボックスを含む)がちらつきます。

このちらつきを最小限に抑えるための多くの提案を読みました. 提案された解決策の1つは次のとおりです.

SetStyle(ControlStyles.UserPaint, true);
SetStyle(ControlStyles.AllPaintingInWmPaint, true); 
SetStyle(ControlStyles.DoubleBuffer, true);

しかし、それは私とはうまくいきません、

このコードを使用して WS_CLIPCHILDREN をオフにすることについて読みました。

protected override CreateParams CreateParams {
  get {
    var parms = base.CreateParams;
    parms.Style &= ~0x02000000;  // Turn off WS_CLIPCHILDREN
    return parms;
  }
}

このコードは、同じ問題に直面した一部の人々を助けます。だから私はそれを使いたいのですが、どこに貼り付けるのか本当にわかりません。つまり、フォームではなくUserControl のコードに貼り付ける必要があることを読みました。その方法がわかりません。使用したすべてのコントロールはカスタム コントロールではありません。

ここを見て、最初の答えを見てください:

ユーザー コントロールのちらつきを修正する方法

前もって感謝します、

4

2 に答える 2

1

WS_EX_COMPOSITED スタイルも有効にすることを検討してください。場合によっては役立つ場合があります。

parms.ExStyle |= 0x02000000; //WS_EX_COMPOSITED
于 2013-05-04T19:14:57.283 に答える