Я работал над одним проектом последние несколько месяцев, и у меня возникла одна проблема, которую я не могу решить. У меня есть форма Windows с элементами управления. Когда пользователь изменяет размер элементов управления, приложение запускает событие sizechanged, и я перемещаю элементы управления на нем соответствующим образом. Основная проблема связана с кнопками, потому что у них есть изображения - точнее говоря, они плоские, без рамки и на них есть изображение, которое на самом деле нарисованная кнопка (причина, по которой я не рисую ее с помощью кода, заключается в том, что изображение является сложным). На некоторых машинах они начинают мерцать при изменении размера приложения. Для формы установлено значение 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);
}
Какие-либо предложения?