-1

我正在使用 Visual Studio 2010 中的 Web 浏览器,但无法将选项卡名称更新为网站名称。例如,当您访问 CNN.Com 之类的网站时,我希望标签页也显示“cnn.com”。顺便说一句,该项目没有使用默认的 WebBrowser 表单。请以最简单的方式解释它,因为我是 C# 新手(刚从 C++ 和 Java 迁移)所以我不熟悉使用 Windows 表单。谢谢。任何帮助表示赞赏。

这是问题的图片:http: //postimage.org/image/5ym4yx0pt/

……

    public Form1()
    {
        InitializeComponent();
    }

    int i = 1;
    private void Form1_Load(object sender, EventArgs e)
    {
        WebBrowser Browse = new WebBrowser();
        //Load a tab when loading form
        tabControl1.TabPages.Add("Tab");//problem
        tabControl1.SelectTab(i - 1);
        Browse.Name = "Lithium Browser";
        Browse.Dock = DockStyle.Fill;
        tabControl1.SelectedTab.Controls.Add(Browse);
        i++;
        ((WebBrowser)tabControl1.SelectedTab.Controls[0]).Navigate("www.google.com");
    }

    private void button1_Click(object sender, EventArgs e)
    {
        ((WebBrowser)tabControl1.SelectedTab.Controls[0]).Navigate(textBox1.Text);
    }

    private void toolStripButton1_Click(object sender, EventArgs e)
    {
        WebBrowser Browse = new WebBrowser();
        tabControl1.TabPages.Add("Tab"); //problem
        tabControl1.SelectTab(i - 1);
        Browse.Name = "Lithium Browser";
        Browse.Dock = DockStyle.Fill;
        tabControl1.SelectedTab.Controls.Add(Browse);
        i++;
    }

    private void toolStripButton2_Click(object sender, EventArgs e)
    {
        tabControl1.TabPages.RemoveAt(tabControl1.SelectedIndex);
        tabControl1.SelectTab(tabControl1.TabPages.Count - 1);
        i = i- 1;

    }

    private void toolStripButton3_Click(object sender, EventArgs e)
    {
        ((WebBrowser)tabControl1.SelectedTab.Controls[0]).GoBack();
    }

    private void toolStripButton4_Click(object sender, EventArgs e)
    {
        ((WebBrowser)tabControl1.SelectedTab.Controls[0]).GoForward();
    }

    private void toolStripButton5_Click(object sender, EventArgs e)
    {
        ((WebBrowser)tabControl1.SelectedTab.Controls[0]).GoHome();
    }

    private void toolStripButton6_Click(object sender, EventArgs e)
    {
        ((WebBrowser)tabControl1.SelectedTab.Controls[0]).Refresh();
    }

    private void toolStripButton7_Click(object sender, EventArgs e)
    {
        ((WebBrowser)tabControl1.SelectedTab.Controls[0]).Stop();
    }

    private void yahooSearchToolStripMenuItem_Click(object sender, EventArgs e)
    {
        toolStripDropDownButton1.Text = yahooSearchToolStripMenuItem.Text;
    }

    private void youtubeSearchToolStripMenuItem_Click(object sender, EventArgs e)
    {
        toolStripDropDownButton1.Text = youtubeSearchToolStripMenuItem.Text;
    }

    private void googleSearchToolStripMenuItem_Click(object sender, EventArgs e)
    {
        toolStripDropDownButton1.Text = googleSearchToolStripMenuItem.Text;
    }

    private void toolStripButton8_Click(object sender, EventArgs e)
    {
        if (toolStripDropDownButton1.Text == googleSearchToolStripMenuItem.Text)
        {
            ((WebBrowser)tabControl1.SelectedTab.Controls[0]).Navigate("http://www.google.com/search?q=" + toolStripTextBox1.Text);
        }

        if (toolStripDropDownButton1.Text == yahooSearchToolStripMenuItem.Text)
        {
            ((WebBrowser)tabControl1.SelectedTab.Controls[0]).Navigate("http://search.yahoo.com/search?p=" + toolStripTextBox1.Text);
        }

        if (toolStripDropDownButton1.Text == youtubeSearchToolStripMenuItem.Text)
        {
            ((WebBrowser)tabControl1.SelectedTab.Controls[0]).Navigate("http://www.youtube.com/results?search_query=" + toolStripTextBox1.Text);
        }
    }

    private void textBox1_TextChanged(object sender, EventArgs e)
    {

    }

    //add KeyUp event for detecting 'Enter' key
    //navigate to specified URL withoud pressing the 'Go' button
    private void textBox1_KeyUp(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Enter)
        {
            ((WebBrowser)tabControl1.SelectedTab.Controls[0]).Navigate(textBox1.Text);
        }

    }

    private void toolStripTextBox1_KeyUp(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Enter)
        {
            if (toolStripDropDownButton1.Text == googleSearchToolStripMenuItem.Text)
            {
                ((WebBrowser)tabControl1.SelectedTab.Controls[0]).Navigate("http://www.google.com/search?q=" + toolStripTextBox1.Text);
            }

            if (toolStripDropDownButton1.Text == yahooSearchToolStripMenuItem.Text)
            {
                ((WebBrowser)tabControl1.SelectedTab.Controls[0]).Navigate("http://search.yahoo.com/search?p=" + toolStripTextBox1.Text);
            }

            if (toolStripDropDownButton1.Text == youtubeSearchToolStripMenuItem.Text)
            {
                ((WebBrowser)tabControl1.SelectedTab.Controls[0]).Navigate("http://www.youtube.com/results?search_query=" + toolStripTextBox1.Text);
            }

            if (toolStripDropDownButton1.Text == youtubeSearchToolStripMenuItem.Text)
            {
                ((WebBrowser)tabControl1.SelectedTab.Controls[0]).Navigate("http://en.wikipedia.org/wiki/" + toolStripTextBox1.Text);
            }

            if (toolStripDropDownButton1.Text == youtubeSearchToolStripMenuItem.Text)
            {
                ((WebBrowser)tabControl1.SelectedTab.Controls[0]).Navigate("http://en.wikipedia.org/wiki/" + toolStripTextBox1.Text);
            }

        }
    }

    private void newTabToolStripMenuItem_Click(object sender, EventArgs e)
    {
        WebBrowser Browse = new WebBrowser();
        tabControl1.TabPages.Add("Tab");
        tabControl1.SelectTab(i - 1);
        Browse.Name = "Lithium Browser";
        Browse.Dock = DockStyle.Fill;
        tabControl1.SelectedTab.Controls.Add(Browse);
        i++;
    }

    private void closeTabToolStripMenuItem_Click(object sender, EventArgs e)
    {
        tabControl1.TabPages.RemoveAt(tabControl1.SelectedIndex);
        tabControl1.SelectTab(tabControl1.TabPages.Count - 1);
        i = i - 1;
    }

    private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
    {

    }

    private void printToolStripMenuItem_Click(object sender, EventArgs e)
    {
        PrintDialog printDialog = new PrintDialog();
        printDialog.ShowDialog();
    }

    private void printPreviewDialog1_Load(object sender, EventArgs e)
    {

    }

    private void printPreviewToolStripMenuItem_Click(object sender, EventArgs e)
    {
        //Associate PrintPreviewDialog with PrintDocument.
        printPreviewDialog1.Document = printDocument1;

        // Show PrintPreview Dialog
        printPreviewDialog1.ShowDialog();
    }

    private void exitToolStripMenuItem_Click(object sender, EventArgs e)
    {
        if (MessageBox.Show("Exit?", "Exit", MessageBoxButtons.OKCancel) == DialogResult.OK)
        {

            Application.Exit();

        }
    }

    // Bring up 'Print Dialog'
    private void pageSetupToolStripMenuItem_Click(object sender, EventArgs e)
    {
        PageSetupDialog pageSetup = new PageSetupDialog();
        pageSetup.PrinterSettings = new System.Drawing.Printing.PrinterSettings();
        pageSetup.PageSettings = new System.Drawing.Printing.PageSettings();
        pageSetup.EnableMetric = false;
        pageSetup.ShowDialog();
    }

    private void stopToolStripMenuItem_Click(object sender, EventArgs e)
    {
        ((WebBrowser)tabControl1.SelectedTab.Controls[0]).Stop();
    }

    private void refreshToolStripMenuItem_Click(object sender, EventArgs e)
    {
        ((WebBrowser)tabControl1.SelectedTab.Controls[0]).Refresh();
    }

    private void homeToolStripMenuItem_Click(object sender, EventArgs e)
    {
        ((WebBrowser)tabControl1.SelectedTab.Controls[0]).GoHome();
    }

    private void previousPageToolStripMenuItem_Click(object sender, EventArgs e)
    {
        ((WebBrowser)tabControl1.SelectedTab.Controls[0]).GoBack();
    }

    private void nextPageToolStripMenuItem_Click(object sender, EventArgs e)
    {
        ((WebBrowser)tabControl1.SelectedTab.Controls[0]).GoForward();
    }

    private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
    {

    }



    private void aboutToolStripMenuItem_Click(object sender, EventArgs e)
    { 
        Form2 about = new Form2();
        about.Show();
    }



    private void calenderToolStripMenuItem_Click(object sender, EventArgs e)
    {
        calenForm cal = new calenForm();
        cal.Show();
    }
 }

}

............

4

2 回答 2

3

假设WebBrowser是内置的WebBrowser,您可以在OnDocumentTitleChanged每次WebBrowser更改文档标题时触发事件以更改选项卡文本。

为此,在表单加载事件中,在声明浏览后,开始输入browse.DocumentTitleChanged +=,并且应该出现一个工具提示,说“插入此代码的选项卡”或类似的内容。只需 Tab 两次,Visual Studio 就会为您插入一个新方法,并带有throw new NotImplementedException();一行。删除该行并将其替换为将选项卡文本更改为浏览器的DocumentTitle.

如果您需要更多信息,我建议您查看文档:http: //msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.aspx

虽然我相信使用事件是最好的解决方案。事件被设计为在某些重要的编程“事件”发生时执行,更改网页是此类事件的一个示例。(如果这有助于您的理解,事件大致相当于 C# 的 C++ 函数指针。虽然它们更类似于std::vector函数指针。)

于 2012-12-14T04:43:53.310 回答
1

为包含在两个标签中的页面文本设置 HTML 标题标签将显示在显示网页的选项卡中。

有关如何在代码隐藏中使用 Eval 设置 Page.Title后面的代码中设置标题的更多信息,请参阅以下内容

还有这个链接

http://www.asprobot.com/ASP.NET/ASPNET-Title-Tag-and-Meta-Tags

于 2012-12-14T02:56:10.360 回答