Tablayout панель занимает слишком много времени для загрузки
У меня есть форма ниже, где у меня есть несколько элементов управления на панели Tablayout, как показано на рисунке.
Это занимает слишком много времени (и также мерцание), когда я загружаю эту форму.
я попытался: я выбрал CellBorderStyle как "None", поэтому в тот момент я не наблюдал эту проблему, но в тот момент, когда я выбираю любой стиль cellBorder, кроме "None", он появляется.
PS; я не выполнял никаких операций во время загрузки формы. просто пытаюсь загрузить исходную форму.
2 ответа
Решение
Попробуйте свойство DoubleBuffered, чтобы избежать мерцания. Вам нужно будет создать подкласс из TableLayoutPanel, чтобы установить для свойства DoubleBuffered значение true.
Ниже приведен полный ответ, как предложил Tor.
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);
}
я назвал верхнюю функцию из конструктора формы
SetDoubleBuffered("tablayoutPanelName");