Пользовательский элемент управления не окрашивается c # - PullRequest
0 голосов
/ 09 мая 2018

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

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

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

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

Вот изображение для получения правильной идеи -

enter image description here

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

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

1 Ответ

0 голосов
/ 08 августа 2018

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

...