Windowsフォーム内のrichTextBoxに問題があります。
垂直スクロールを有効にしましたが、マウスを使用してスクロールバーをドラッグする場合を除いて、すべて正常に機能します。これを行うと、ドラッグを放すまでスクロールバーが所定の位置に留まり、ちらつきます。マウスのスクロールホイールを使用するか、上下の矢印キーをクリックすると、バーがちらつくことなく定期的にスクロールします。
なぜこれが起こっているのかについてのアイデアはありますか?
Windowsフォーム内のrichTextBoxに問題があります。
垂直スクロールを有効にしましたが、マウスを使用してスクロールバーをドラッグする場合を除いて、すべて正常に機能します。これを行うと、ドラッグを放すまでスクロールバーが所定の位置に留まり、ちらつきます。マウスのスクロールホイールを使用するか、上下の矢印キーをクリックすると、バーがちらつくことなく定期的にスクロールします。
なぜこれが起こっているのかについてのアイデアはありますか?
他の誰かがこの問題を抱えている場合に備えて、私はここで解決策を見つけました:http ://www.angryhacker.com/blog/archive/2010/07/21/how-to-get-rid-of-flicker-on-windows -forms-applications.aspx
基本的に、form.csファイルに追加する必要があるのは次のとおりです。
int originalExStyle = -1;
bool enableFormLevelDoubleBuffering = true;
protected override CreateParams CreateParams
{
get
{
if (originalExStyle == -1)
originalExStyle = base.CreateParams.ExStyle;
CreateParams cp = base.CreateParams;
if (enableFormLevelDoubleBuffering)
cp.ExStyle |= 0x02000000; // WS_EX_COMPOSITED
else
cp.ExStyle = originalExStyle;
return cp;
}
}
private void TurnOffFormLevelDoubleBuffering()
{
enableFormLevelDoubleBuffering = false;
this.MaximizeBox = true;
}
private void frmMain_Shown(object sender, EventArgs e)
{
TurnOffFormLevelDoubleBuffering();
}