将 tabPage 添加到单独的表单

Adding a tabPage to a separate Form

我有 2 个表单,一个标记为 Form1.cs,它有一个默认包含 2 个选项卡的 tabControl。我有 Form2.cs,上面有一个标签 (Name:)、一个文本框和一个 "OK" 按钮。

我想在 Form1.cs 上创建一个新选项卡,选项卡顶部的名称是在文本框中输入的名称。

我是 C# 的新手/Visual Studio,发现很难阅读任何可能对我有所帮助的内容。

Form1.cs 和 Form2.cs

namespace Scoreboard3
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void scoreboard2pToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form2 f2 = new Form2();
            f2.ShowDialog();
        }
    }
}
namespace Scoreboard3
{
    public partial class Form2 : Form
    {
        public string SelectedText { get; set; }

        public Form2()
        {
            InitializeComponent();
        }

        private void txtBox2v2_TextChanged(object sender, EventArgs e)
        {

        }

        public void OK_Click(object sender, EventArgs e)
        {
            Form1.TabControl1.TabPages.Add;
        }
    }
}

无需从另一个表单访问该选项卡控件。你可以这样做:

在包含选项卡控件的第一个窗体中:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void scoreboard2pToolStripMenuItem_Click(object sender, EventArgs e)
    {
        using (Form2 f2 = new Form2())
        {
            if(f2.ShowDialog() == DialogResult.OK)
            {
                TabControl1.TabPages.Add(f2.SelectedText);
                //or insert
                //TabControl1.TabPages.Insert(0, f2.SelectedText);
            }
        }
    }
}

第二种形式:

public partial class Form2 : Form
{
    //A read only property to return the text entered in the text box.
    public string SelectedText => txtBox2v2.Text;

    public Form2()
    {
        InitializeComponent();
    }

    public void OK_Click(object sender, EventArgs e)
    {
        //You only need to do this in your OK button.
        DialogResult = DialogResult.OK;
    }
}

让每个表单处理自己的内容。