[英]Adding a tabPage to a separate Form
我有 2 个表单,一个被标记为 Form1.cs,它有一个 tabControl,默认有 2 个选项卡。 我有 Form2.cs,上面有一个标签(名称:)、一个文本框和一个“确定”按钮。
我希望在 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;
}
}
}
根据您提供的代码,您从form1打开form2。 所以form2是form1的子窗体。 也许您可以通过“ event ”刷新form1。 这是您可以参考的简单代码。
Form1.cs
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
void form1_AddTab(string name)
{
tabControl1.TabPages.Add(name);
}
private void btOpenForm2_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
// Subscribe to the event
form2.AddEvent += form1_AddTab;
form2.ShowDialog();
}
}
Form2.cs
public delegate void AddDelegate(String name);
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
public event AddDelegate AddEvent;
private void btOK_Click(object sender, EventArgs e)
{
AddEvent(textBox1.Text);
this.Close();
}
}
无需从其他表单访问该选项卡控件。 你可以做:
在包含选项卡控件的第一种形式中:
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;
}
}
让每种形式处理其自己的内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.