Boy Imba Ответов: 1

Браузер Cefsharp, открывающий несколько вкладок при открытии приложения


я пытаюсь открыть 2 вкладки по умолчанию, когда пользователь открывает мое приложение. Это коды всего для 1 вкладки:
ChromiumWebBrowser chrome;
private void BrowserForm_Load(object sender, EventArgs e)
    {
        //initialize the browser
        this.initialize_browser();
        chrome.Parent = tabPage1;
    }
 private void initialize_browser()
    {
        CefSettings settings = new CefSettings();
        Cef.Initialize(settings);

        //main browser
        chrome = new ChromiumWebBrowser("http://google.com");
        tabPage1.Controls.Add(chrome);
        chrome.Dock = DockStyle.Fill;
    }


Что я уже пробовал:

И я попробовал что-то вроде этого, чтобы добавить больше вкладок:
Способ 1:
chrome.parent = tabpage1 = tabpage2;

Способ 2:
chrome.parent = tabpage1;tabpage2 = tabpage1;

Способ 3:
chrome.parent = tabpage1;
chrome.parent = tabpage2;

Оба метода 1-2-3 имеют один и тот же частный void initialize_browser()
private void initialize_browser()
   {
       CefSettings settings = new CefSettings();
       Cef.Initialize(settings);

       //main browser
       chrome = new ChromiumWebBrowser("http://google.com");
       tabPage1.Controls.Add(chrome);
       chrome.Dock = DockStyle.Fill;

       tabPage2.Controls.Add(chrome);
       chrome.Dock = DockStyle.Fill;
   }

Но все методы просто дают один результат:" просто есть одна вкладка-это chrome.parent

Я также попробовал метод 4: Создайте новый declare ChromiumWebBrowser chrome2; но chrome2 будет иметь другую настройку с chrome. Пример: все пользовательские всплывающие окна lifespanhanler просто принадлежат chrome, и chrome2 будет просто использовать значение по умолчанию.

Способ 4:
ChromiumWebBrowser chrome;

ChromiumWebBrowser chrome2;

private void BrowserForm_Load(object sender, EventArgs e)
    {
        //initialize the browser
        this.initialize_browser();
        chrome.Parent = tabPage1;
        chrome2.Parent = tabPage2;
    }
 private void initialize_browser()
    {
        CefSettings settings = new CefSettings();
        Cef.Initialize(settings);

        //main browser
        chrome = new ChromiumWebBrowser("http://google.com");
        tabPage1.Controls.Add(chrome);
        chrome.Dock = DockStyle.Fill;

        chrome2 = new ChromiumWebBrowser("http://google.com");
        tabPage2.Controls.Add(chrome);
        chrome2.Dock = DockStyle.Fill;
    }

Братан и смысл, как мне его решить? Большое вам спасибо!
Сообщение также опубликовано на: c# - браузер CEFSharp, открывающий несколько вкладок при открытии приложения - переполнение стека[^]

1 Ответов

Рейтинг:
2

Member 14073346

Estoy intentando lo mismo en una aplicacion de escritorio, sin embargo a veces me carga todos los chromiumWebBrowser a veces no, esta perdiendo los eventos y no se como agrearle o setearle al browser.load("root.html") un evento para siempre los dibuje, si lo resolviste te agradeceria...


Member 14036838

английский, пожалуйста ;D