WinForms мерцает после максимизации - двойная буферизация

// this is better suited for expensive object creation/initialization
IEnumerable<Employee> ParseEmployeeTable(DataTable dtEmployees)
{
    var employees = new ConcurrentBag<Employee>();

    Parallel.ForEach(dtEmployees.AsEnumerable(), (dr) =>
    {
        employees.Add(new Employee() 
        {
            _FirstName = dr["FirstName"].ToString(),
            _LastName = dr["Last_Name"].ToString()
        });
    });

    return employees;
}
0
задан Ryan Johnson 18 January 2019 в 17:10
поделиться

1 ответ

Пришлось удалить любые виды двойной буферизации / createparams и т. Д. Из мастер-формы и поместить их исключительно в дочерние формы ....

protected override CreateParams CreateParams
{
    get
       {
         var cp = base.CreateParams;
         cp.ExStyle |= 0x02000000;    // Turn on WS_EX_COMPOSITED
         return cp;
       }
}


frmChild()
{
    ResizeRedraw = true;
    this.SetStyle(ControlStyles.UserPaint | ControlStyles.OptimizedDoubleBuffer |
                  ControlStyles.AllPaintingInWmPaint | ControlStyles.SupportsTransparentBackColor, true);
}
0
ответ дан Ryan Johnson 18 January 2019 в 17:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: