ここ数か月、あるプロジェクトに取り組んできましたが、解決できない問題が 1 つあります。コントロールを含む Windows フォームがあります。ユーザーがコントロールのサイズを変更すると、アプリは sizechanged イベントを発生させ、それに応じてコントロールを移動します。主な問題は、ボタンに画像があるためです。実際には、より正確に言うと、フラットで境界線がなく、実際に描画されたボタンである画像があります (コードで描画しない理由は、画像が複雑です)。一部のマシンでは、アプリのサイズ変更中にちらつき始めます。Form は DoubleBuffered true に設定されており、この関数を使用してボタンにダブル バッファを設定しました。
public static void SetDoubleBuffered(System.Windows.Forms.Control c)
{
if (System.Windows.Forms.SystemInformation.TerminalServerSession)
return;
System.Reflection.PropertyInfo aProp =
typeof(System.Windows.Forms.Control).GetProperty(
"DoubleBuffered",
System.Reflection.BindingFlags.NonPublic |
System.Reflection.BindingFlags.Instance);
aProp.SetValue(c, true, null);
}
助言がありますか?