Из того, что я помню, нет, двойная буферизация НЕ переносится на дочерние элементы управления. Вам нужно установить его для каждого в отдельности. Я поищу это в Google и посмотрю, смогу ли я найти источник, чтобы доказать или опровергнуть это ...
РЕДАКТИРОВАТЬ: Найдено: http://www.devnewsgroups.net/group/microsoft.public.dotnet.framework.windowsforms/topic17173.aspx
Просто подумал о быстром взломе, чтобы обойти это. В основном, используйте отражение, чтобы получить свойство DoubleBuffered, а затем установите его:
public static class Extensions
{
public static void EnableDoubleBuferring(this Control control)
{
var property = typeof(Control).GetProperty("DoubleBuffered", BindingFlags.Instance | BindingFlags.NonPublic);
property.SetValue(control, true, null);
}
}
Затем в коде формы сделайте что-то вроде этого:
public Form1()
{
InitializeComponent();
this.DoubleBuffered = true;
foreach (Control control in this.Controls)
{
control.EnableDoubleBuferring();
}
}