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

如何把一个窗体加载到另外一个窗体中(前辈指教)

2012-01-08 
怎么把一个窗体加载到另外一个窗体中(前辈指教)如题;也不知道问的整部正规我是C#的初学者;我建立了两个窗

怎么把一个窗体加载到另外一个窗体中(前辈指教)
如题;也不知道问的整部正规;我是C#的初学者;
  我建立了两个窗体;Form1和Form2.在Form1中有几个控件;其Enable设置为False;
      在Form2中有一个button;我就是想同过单击Form2中的button;使Form1中几个控件
            的Enable属性值变成True;据说要把Form1加载到Form2中;谢谢各位

[解决办法]
用事件

在Form2中

public delegate void BtnClickEventHandler(object sender, EventArgs e);
public event BtnClickEventHandler OnBtnClick;

然后, 在Form2中的button Click中

private void button_Click(object sender, EventArgs e)
{
if(OnBtnClick != null)
{
OnBtnClick(sender, e);
}
}

再之后就是在Form1中接这个Event啦, 在Form1的Constructor中

protected Form2 frm2;
public Form1(Form2 frm2)
{
this.frm2 = frm2;
this.frm2.OnBtnClick += new EventArgs(frm2_OnBtnClick);
}

private void frm2_OnBtnClick(object sender, EventArgs e)
{
//Do anything you want to do
}
[解决办法]
在Form2 中定义一个Form1变量,设置成属性
private Form1 frm;
public Form1 Form1
{
set{this.frm = value;}
}
然后在Form1 实例化Form2的地方加上
Form2 frm2 = new Form2();
frm2.Form1 = this;
frm2.Show();

接下来只要在Form1定义一个public 的方法负责改属性就好了
public void aaa(bool flag)
{
xxxx.Enable = flag;
}
[解决办法]
假设将Form2要显示在Form1的Pannel中

Form2 F2= new Form2();
F2.TopLevel = False
Form1.Pannel.Controls.Add(F2)
F2.show()

实际上就是把Form2当作Form1的控件用了
=====================
[解决办法]
Form2 form = new Form2();
form.FormBorderStyle = FormBorderStyle.None;
form.TopLevel = false;
this.panel1.Controls.Add(form);
form.Show();

热点排行