form1中手动放置了一个picturebox(name为pictureBox2),在.cs文件中用以下代码生成一些picturebox
foreach (DataRow dr in dsHeader.Tables[0].Rows)
{
PictureBox pbx = new PictureBox();
Image img = Image.FromFile(Application.StartupPath + "\\images\\" + dr["MenuImg"], false);
pbx.BackgroundImage = img;
pbx.Name = dr["PowerName"].ToString().ToLower();
pbx.Location = new Point(34, 138 + (i * 54));
pbx.Width = img.Width;
pbx.Height = img.Height;
pbx.BringToFront();
并且在这段代码之前设置 pictureBox2.SendToBack();
运行时发现动态生成的pbx被放在窗体中的pbx给遮住了,如果把窗体中手动放置的pbx设置为不可见,则可以在窗体中看到动态生成的pbx,请教大家这要如何解决。
动态生成控件的代码是放在load事件中,会有影响么?
------解决思路----------------------
先Add再BringToFront();
------解决思路----------------------
foreach (DataRow dr in dsHeader.Tables[0].Rows)
{
PictureBox pbx = new PictureBox();
Image img = Image.FromFile(Application.StartupPath + "\\images\\" + dr["MenuImg"], false);
pbx.BackgroundImage = img;
pbx.Name = dr["PowerName"].ToString().ToLower();
pbx.Location = new Point(34, 138 + (i * 54));
pbx.Width = img.Width;
pbx.Height = img.Height;
this.Controls.Add(pbx);
i++;
pbx.BringToFront();
}