日期:2014-05-18 浏览次数:20998 次
public partial class Form1 : Form { private void button1_Click(object sender, EventArgs e) { Form2 frm2 = new Form2(this); frm2.Show(); } } public partial class Form2 : Form { Form1 form1; public Form2(Form1 f1) { InitializeComponent(); form1 = f1; } System.Windows.Forms.TabPage tabPage1=new System.Windows.Forms.TabPage(); form1.tabControl1.Controls.Add(this.tabPage2); form1.tabControl1.Controls.Add(this.tabPage3); form1.tabControl1.Location = new System.Drawing.Point(348, 207); form1.tabControl1.Name = "tabControl1"; form1.tabControl1.SelectedIndex = 0; form1.tabControl1.Size = new System.Drawing.Size(200, 100); form1.tabControl1.TabIndex = 11; form1.tabControl1.Controls.Add(this.tabPage1);
------解决方案--------------------
在from1中写一个增加选项卡的方法,publick void Cread(){//你的代码}
//弹出子窗体
private void button1_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2(this);
frm2.Show();
}
子窗体:
Form1 form1;
public Form2(Form1 f1)
{
InitializeComponent();
form1 = f1;
}
在需要添加选项卡时调用主窗体的方法:form1.Cread();
------解决方案--------------------
把父窗口的引用传给子窗口
并且父窗口控件设置成公共
这样子窗口就可以控制了
------解决方案--------------------
使用委托呀!
MainForm:
/// <summary> /// 假设你是在这个按钮事件打开子窗体的 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn1_Click(object sender, EventArgs e) { Form2 frm = new Form2(); frm.AddTabPageEvent += new Form2.AddTabPageHandler(frm_AddTabPageEvent); frm.ShowDialog(); } void frm_AddTabPageEvent() { //写你的tabpage增加方法 }