Пользовательский элемент управления не окрашивается С#

У меня есть приложение, в котором я могу перейти от одного пользовательского элемента управления ко многим пользовательским элементам управления. Когда я переходил ко многим элементам управления, у меня возникали проблемы с мерцанием. Чтобы устранить мерцание, я включил Двойную буферизацию с помощью -

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

Это действительно решило проблему мерцания. Но появилась новая проблема, в которой иногда мой пользовательский элемент управления не прорисован полностью. Появилось черное окно. Чтобы решить эту проблему, мне нужно свернуть и развернуть программное обеспечение, и оно отображается правильно.

Я думаю, что, хотя двойная буферизация рисует все пользовательские элементы управления за один раз, один или несколько пользовательских элементов управления все еще генерируют свои элементы управления. А на момент мастерской росписи этот контроль был не готов.

Вот изображение для правильного понимания -

введите здесь описание изображения

Как показано на рисунке, в этом конкретном сценарии есть одна форма, содержащая 4 пользовательских элемента управления. Кроме того, каждый пользовательский элемент управления содержит другие элементы управления/пользовательские элементы управления.

Что, вероятно, идет не так в этом вопросе?


person Arpit Gupta    schedule 09.05.2018    source источник
comment
Вы пытались вызвать Invalidate() в событии ResizeEnd?   -  person Sandeep    schedule 09.05.2018
comment
@Sandeep Нет, чувак, это не помогло.   -  person Arpit Gupta    schedule 09.05.2018
comment
Получил аналогичную проблему, но для менее сложных пользовательских элементов управления. Эта проблема была решена путем вызова Invalidate() в ResizeEvent для обработки перемещения главного окна. И вызывая Invalidate в событии MouseUp для перемещения пользовательского элемента управления.   -  person Sandeep    schedule 09.05.2018


Ответы (1)


Я решил эту проблему, изменив TrasnsparencyKey в дизайне формы с черного на другой цвет, но не черный, попробуйте один цвет, который вы не используете.

person Nacho Vazquez Gonzalez    schedule 08.08.2018