如何在弹出的子窗体中创建控件?
父窗体代码:
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
------解决方案--------------------
------解决方案--------------------
最好的方法就是在FrmSub中公开个方法,比如
public void AddControlToXXPanel(Control myCcontrol)
{
this.panel.Controls.add(myCcontrol);
}