首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

求C#高手解答:点击子窗体的事件 主窗体添加新控件解决办法

2012-06-11 
求C#高手解答:点击子窗体的事件 主窗体添加新控件有个主窗体MainFrm,里面有个TabControl,TabControl里面有

求C#高手解答:点击子窗体的事件 主窗体添加新控件
有个主窗体MainFrm,里面有个TabControl,TabControl里面有个Panel,panel用来加载其他子窗体用的,建立一个子窗体A,A窗体中有个Button,我想点击这个Button之后,在主窗体中的TabControl 自动增加一个选项卡。怎么解决呢

[解决办法]

C# code
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:
C# code
         /// <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增加方法        } 

热点排行