@kyctaphik

Почему окно Winforms cefsharp отображается неправильно?

Здравствуйте, проблема такая, мне нужно из одной Form1 запускать Form2. В Form2 будет открываться браузер cefsharp.
Если я запускаю в Form1 с помощью нового потока, так:
Thread _thread = new Thread(() => Application.Run(new Form2()));
_thread.start();

То всё работает, окно с браузером открывается корректно. Но если вызываю такой код:
Thread _thread = new Thread(() => new Form2().Show());
_thread.start();

То окно открывается некорректно, пока я не уменьшу или увеличу, или сделаю на весь экран его. (скриншот)
67297bbe8efa2284422055.png
Тоже самое если просто в коде программы без нового потока вывести new Form2().Show()
Много чего перебровал, в том числе убрать добавить Dock.Fill параметр, также добавлял groupBox а в него уже окно браузера, эффект тот же.
Частично получается пофиксить если вызвать в коде после загрузки фрейма такой void:
this.WindowState = FormWindowState.Minimized;
                this.WindowState = FormWindowState.Normal;

т. е сворачивать и разворачивать окно, тогда отображается почти на всё окно, но с зазора чёрными (скриншот 2)
67297cbcae998697185450.png
Честно, не понимаю природу ошибки, возможно окно загружается раньше браузера или наоборот? Но при Application.Run(new Form2()) всё работает, помогите, пожалуйста, решить вопрос.
  • Вопрос задан
  • 74 просмотра
Решения вопроса 1
@kyctaphik Автор вопроса
Проблема была решена, перенес объявление настроек Cef.Initialize() из Form1(){} конструктора, в Form1_load() метод, и Form2().Show() стало отображаться корректно, как в 1 потоке, так и в нескольких.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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