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

怎么在弹出的子窗体中创建控件

2012-05-13 
如何在弹出的子窗体中创建控件?父窗体代码:frmSub frmSub new frmSubButton Db new Button()Db.Name

如何在弹出的子窗体中创建控件?
父窗体代码:

frmSub frmSub =new frmSub;
Button Db = new Button();
Db.Name = "12";
Db.Text = "11111";
Db.Visible = true;
Db.Location = new Point(50, 50);

frmSub.Controls.add(Db);

这样是可以的。
但是我的frmSub中有个panel1,如何把这个Db加到panel1里面??
frmSub.panel1.Controls.add(Db);这样不行。

[解决办法]
其实是可以的,你将frmSub窗体中的panel1设置为public
代码:
frmSub中的代码:
public Panel panel;//自定义panel
public frmSub(){
 panel=panel1;//在构造函数里面,将panel1赋值给自定义的panel,这个panel1就是你窗体中panel的控件
}

在父窗体中:
frmSub frmSub =new frmSub;
Button Db = new Button();
Db.Name = "12";
Db.Text = "11111";
Db.Visible = true;
Db.Location = new Point(50, 50);

frmSub.panel.Controls.add(Db);
[解决办法]

C# code
frmSub frmSub =new frmSub();Button Db = new Button();Db.Name = "12";Db.Text = "11111";Db.Visible = true;Db.Location = new Point(50, 50);(frmSub.Controls["Panel1"] as Panel).Add(Db);
[解决办法]
如果想直接访问panel,可以将panel的modifers属性设置为public,这样就可以

frmSub.Panel1.Controls.Add

[解决办法]
探讨

如果想直接访问panel,可以将panel的modifers属性设置为public,这样就可以

frmSub.Panel1.Controls.Add

[解决办法]
最好的方法就是在FrmSub中公开个方法,比如
public void AddControlToXXPanel(Control myCcontrol)
{
this.panel.Controls.add(myCcontrol);
}

热点排行