0

閉じるボタンと新しいタブの 2 つのボタンと、Google を読み込む Web ブラウザを作成しました。新しいタブをクリックすると、新しいタブが開きますが、Web ブラウザーは開きません。これは、Microsoft ヘルプ サイトからのコードです。Visual Studio 2012 と c# を使用しています。

private void newTab_Click(object sender, EventArgs e)
{
    string title = "TabPage " + (tabControl1.TabCount + 1).ToString();
    TabPage myTabPage = new TabPage(title);
    tabControl1.TabPages.Add(myTabPage);
}

private void closeTab_Click(object sender, EventArgs e)
{
    tabControl1.TabPages.Remove(tabControl1.SelectedTab);
}

現時点ではこのコードがありますが、検索ボックスに入力すると、タブページ 1 でのみ機能し、開いた新しいタブでは機能しないため、検索ボックスにコードを追加する必要がありますか?

私のコードは次のとおりです。

private void newTab_Click(object sender, EventArgs e)
{
    string title = "TabPage " + (tabControl1.TabCount + 1).ToString();
    TabPage myTabPage = new TabPage(title);


    var browser = new WebBrowser();
    browser.Dock = DockStyle.Fill;
    browser.Url = new Uri(@"http://www.google.com");


    myTabPage.Controls.Add(browser);
    tabControl1.TabPages.Add(myTabPage);

}
4

2 に答える 2

0

WebBrowserまた、コントロールの新しいインスタンスをタブに追加する必要があります。

private void newTab_Click(object sender, EventArgs e)
{
    string title = "TabPage " + (tabControl1.TabCount + 1).ToString();
    TabPage myTabPage = new TabPage(title);

    // Create new WebBrowser instance
    var browser = new WebBrowser();
    browser.Dock = DockStyle.Fill;
    browser.Url = new Uri(@"http://www.google.de");

    // Add the WebBrowser control to the TabPage.
    myTabPage.Controls.Add(browser);
    tabControl1.TabPages.Add(myTabPage);
}

TabPageデザイナーを使用して追加した場合と同様に、それぞれが最初は空です。その内容は、追加したいものによって異なります。-Control を共有WebBrowserしても意味がありません。異なるタブで異なる Web サイトを開きたいからです。

ユーザーに最初のタブを閉じてほしくない場合は、ユーザーが閉じようとしているタブが最初に作成されたタブであるかどうかを簡単に確認できます。

private void closeTab_Click(object sender, EventArgs e)
{
    // Is the Tab Page the first one?
    if (tabControl1.SelectedTab == tabControl1.TabPages[0])
        return;

    tabControl1.TabPages.Remove(tabControl1.SelectedTab);
}

または、少なくとも 1 つのタブ ページを「開いたまま」にしたい場合は、TabCount-Propertyを使用できます。

private void closeTab_Click(object sender, EventArgs e)
{
    // Is the Tab Page the last one opened?
    if (tabControl1.TabCount == 1)
        return;

    tabControl1.TabPages.Remove(tabControl1.SelectedTab);
}
于 2013-02-21T13:17:06.827 に答える
0

コードにWeb ブラウザコントロールがありません:

private void newTab_Click(object sender, EventArgs e)
{
        string title = "TabPage " + (tabControl1.TabCount + 1).ToString();
        TabPage myTabPage = new TabPage(title);
        tabControl1.TabPages.Add(myTabPage);
        WebBrowser wb = new WebBrowser();
        myTabPage.Controls.Add(wb);
        wb.Navigate("google.com");
}

private void closeTab_Click(object sender, EventArgs e)
{
    if(tabControl1.TabPages.Count == 1)
       return;

    tabControl1.TabPages.Remove(tabControl1.SelectedTab);
}
于 2013-02-21T13:17:11.370 に答える