我有一個自定義控件,其上有其他控件。當用戶點擊它時,我遞歸地遍歷所有控件並將其背景顏色更改爲藍色。但是,當控件單獨更改顏色時,我會遇到大量閃爍問題。我啓用了雙緩衝,但我懷疑它優化了我的繪圖。我懷疑這可能不是做這種效果的最佳方式。更改背景時自定義控件閃爍
我該如何擺脫這種閃爍?或者有更好的方法來做到這一點?
我的電話的onclick:
ControlUtils.SetColorRecursive(this, Color.LightSteelBlue);
SetColorRecursive:
tCtl.SuspendLayout();
if (tCtl != null)
{
// Set Color
tCtl.BackColor = tColor;
foreach (Control tSubCtl in tCtl.Controls)
{
// Ignore the following
if (tSubCtl is TextBox) continue;
if (tSubCtl is ListBox) continue;
if (tSubCtl is NumericUpDown) continue;
// Recursively change sub-controls
SetColorRecursive(tSubCtl, tColor);
}
}
tCtl.ResumeLayout();
谷歌搜索產生的結果提到了一種稱爲合成的不同類型的雙緩衝。任何人都知道這種方法? – MarkP