我的新标签页按钮仅将我的用户控件放在第一个新标签页中,其余部分保持空白

问题描述 投票:0回答:1

我对编程还很陌生,当时正在Visual Studio中构建Web浏览器,但是遇到了一个我似乎无法解决的问题。我有保存菜单栏和tabcontrol的表单。然后,我创建了一个用户控件,其中包含工具栏和Web浏览器控件。然后,我将用户控件添加到表单上选项卡的内部。我的问题是,当我单击按钮创建新选项卡时,第一个新选项卡正确,它具有我的用户控件,但是此后的每个新选项卡都是空白。如何使打开的每个新标签都具有我的用户控件?这是我的代码。

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;

    namespace WebBrowser.UI
    {
        public partial class Nnocu : Form
        {
            WebControls WebControls = new WebControls();

            public Nnocu()
            {
                InitializeComponent();
            }


            private void Nnocu_Load(object sender, EventArgs e)
            {

            }

            private void exitWebBrowserToolStripMenuItem_Click(object sender, EventArgs e)
            {
                Application.Exit();
            }

            private void aboutToolStripMenuItem_Click(object sender, EventArgs e)
            {
                MessageBox.Show("");
            }


            private void Navigation()
            {
                string web = null;
                WebControls.navigationTextBox.Text = web;               
                WebControls.webBrowser1.Navigate(web);
            }


            private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
            {

            }

            private void Nnocu_KeyDown(object sender, KeyEventArgs e)
            {
                if (e.Control && (e.KeyCode == Keys.T))
                    addTab();

                if (e.Control && (e.KeyCode == Keys.W))
                    this.tabControl1.TabPages.RemoveAt(this.tabControl1.SelectedIndex);
            }



            private void newTabToolStripMenuItem_Click(object sender, EventArgs e)
            {
                addTab();

            }

            private void addTab()
            {


                TabPage tabPage = new TabPage();
                tabPage.Text = "New Tab";
                tabControl1.Controls.Add(tabPage);
                WebControls.Parent = tabPage;
                WebControls.Dock = DockStyle.Fill;
                WebControls.webBrowser1.Navigate("www.google.com");


            }



            private void closeCurrentTabToolStripMenuItem_Click(object sender, EventArgs e)
            {
                tabControl1.TabPages.RemoveAt(this.tabControl1.SelectedIndex);
            }
        }
    }

和我的用户控件

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WebBrowser.UI
{
    public partial class WebControls : UserControl
    {

            public WebControls()
        {
            InitializeComponent();
        }

        private void goButton_Click(object sender, EventArgs e)
        {
            try
            {
                webBrowser1.Navigate(navigationTextBox.Text);
            }
            catch (Exception ex)
            {
                // Error message for an invalid Web Address.
                MessageBox.Show(ex.Message);
            }
        }

        private void navigationTextBox_KeyUp(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                try
                {
                    webBrowser1.Navigate(navigationTextBox.Text);
                }
                catch (Exception ex)
                {
                    // Error message for an invalid Web Address.
                    MessageBox.Show(ex.Message);
                }
            }
        }

        private void refreshButton_Click(object sender, EventArgs e)
        {
            webBrowser1.Refresh();
        }

    }
}
c# visual-studio user-controls webbrowser-control tabcontrol
1个回答
0
投票

我很了解,您想将UserControl添加到您创建的新TabPage中吗?然后,您需要将UserControl添加到新选项卡的Controls:

private void addTab()
{
      TabPage tabPage = new TabPage();
      tabPage.Text = "New Tab";
      WebControl wc = new WebControl();
      wc.Dock = DockStyle.Fill;
      wc.webBrowser1.Navigate("www.google.com");
      tabPage.Controls.Add(wc);
      tabControl1.Controls.Add(tabPage);
}
© www.soinside.com 2019 - 2024. All rights reserved.