1

我试图在我的代码中找到一种更简单的方法来实现这一点。我不介意输入所有这些,但我担心我将拥有的代码量。我的代码示例只是我想要做的一个小例子。当一切都说完后,我最终会拥有 3 个不同的按钮,为 50 个不同的选项卡执行不同的操作。

我是 C# 的新手,所以请原谅我的经验不足,如果你能指导我正确的方向,我需要使用什么类型、函数和方法来有效地做到这一点,我不会找人为我编写代码赞赏。

无论如何,代码。我基本上是在为我的工作制作一个定制的网络浏览器,每个工具都有 50 多个标签,我需要能够访问,我只是在制作后退按钮、前进、刷新等,但我需要它只在我目前处于活动状态的选项卡。

private void backToolStripMenuItem_Click(object sender, EventArgs e)
    {
        if (frontierTabInner.SelectedTab == frontierTabInner.TabPages["inetTab"])
        {
            inetTabBrowser.GoBack();
            textBox1.Text = inetTabBrowser.Url.ToString();
        }
        if (frontierTabInner.SelectedTab == frontierTabInner.TabPages["frontierWikiTab"])
        {
            frontierWikiBrowser.GoBack();
            textBox1.Text = frontierWikiBrowser.Url.ToString();
        }
        if (frontierTabInner.SelectedTab == frontierTabInner.TabPages["loopcareTab"])
        {
            loopcareBrowser.GoBack();
            textBox1.Text = loopcareBrowser.Url.ToString();
        }
        if (frontierTabInner.SelectedTab == frontierTabInner.TabPages["vnetTab"])
        {
            vnetBrowser.GoBack();
            textBox1.Text = vnetBrowser.Url.ToString();
        }
        if (frontierTabInner.SelectedTab == frontierTabInner.TabPages["cdpiTab"])
        {
            cdpiBrowser.GoBack();
            textBox1.Text = cdpiBrowser.Url.ToString();

        }
        if (frontierTabInner.SelectedTab == frontierTabInner.TabPages["lolaTab"])
        {
            lolaBrowser.GoBack();
            textBox1.Text = lolaBrowser.Url.ToString();

        }
        if (frontierTabInner.SelectedTab == frontierTabInner.TabPages["billingLookupTab"])
        {
            billingLookupBrowser.GoBack();
            textBox1.Text = billingLookupBrowser.Url.ToString();
        }

我知道有一种更简单的方法可以做到这一点,但我似乎找不到。

任何帮助都会有所帮助。

谢谢

4

1 回答 1

1

您可以WebBrowser很容易地在所选选项卡中找到控件:

private void backToolStripMenuItem_Click(object sender, EventArgs e)
{
    WebBrowser wbControl =
       frontierTabInner.SelectedTab.Controls.OfType<WebBrowser>().FirstOrDefault();
    wbControl.GoBack();
    textBox1.Text = wbControl.Url.ToString();
}

假设您在每个选项卡中只有一个 WebBrowser 控件。否则,您必须知道它的名称或索引才能找到它。

于 2013-05-03T00:14:32.690 回答