【解決方法】タブコントロールから動的ウェブブラウザを選択します


こんにちは、私は独自のカスタム Web ブラウザーを開発してきました。 タブ コントロールに Web ブラウザを挿入して名前を付けると、ボタン クリックで webbrowser1.Navigate() に簡単に移動して、webbrowser メソッドを使用できます。

CreateTab メソッドを作成すると、デフォルトの Web ページとともに Web ブラウザがタブに自動的に追加されます。
私の問題は、他のボタンのクリックでこのウェブブラウザを選択して、ホーム、戻る、進むなどを呼び出すことができることです。

ここではタブを作成する方法を説明します。

C#
private void CreateTabItem()
{   //create a new tab
    TabItem item = new TabItem();
    item.Header = "Fitness" + i ;
    WebBrowser browser = new WebBrowser();
    //browser.Name = "Website";

    browser.Navigate("http://www.bodybuilding.com/exercises/");
    item.Content = browser;
    tabControl.Items.Add(item);
    i++;
}

private void btnBack_Click(object sender, RoutedEventArgs e)
{
    //browser.GoBack();
    //if (webBrowser1.CanGoBack)
       // webBrowser1.GoBack();
}

解決策 1

このアプローチを試すことができます。
コードを次のように変更します。

C#
private void CreateTabItem()
{   //create a new tab
    TabItem item = new TabItem();
    item.Header = "Fitness" + i ;
    WebBrowser browser = new WebBrowser();
    //browser.Name = "Website";
    item.Tag = browser; 
    
    browser.Navigate("http://www.bodybuilding.com/exercises/");
    item.Content = browser;
    tabControl.Items.Add(item);
    i++;
}

private void btnBack_Click(object sender, RoutedEventArgs e)
{
    TabItem item = (tabControl.SelectedItem as TabItem);
    if (item != null)
    {
        WebBrowser browser = (item.Tag as WebBrowser);
        if (browser != null)
        {
            if (browser.CanGoBack)
                browser.GoBack();
        }
    }
}

の使用を検討することもできます tabControl.Items.Count の代わりに i インデックス作成用。

コメント

タイトルとURLをコピーしました