如何在panel控件中动态加载pictureBox(从数据库中读取),且加载的pictureBox不能重叠,怎么做呢 请教各位高手了。

解决方案 »

  1.   

    PictureBox p = new PictureBox();  
      p.tga="";
      p.Click += new EventHandler(p_Click);
      p.SizeMode=PictureBoxSizeMode.Zoom;  
      p.BackColor=Color.Black;  
      p.Image = new Bitmap(FileName);  
      p.Width=50;  
      p.Height = 50;  
      int x=(total%5) *60;  
      int y=(total/5) *60;  
      p.Location=new Point(x,y);  
      this.panel1.Controls.Add(p); 
      total++;
      

  2.   

    在动态加载的时候需要计算每个pictureBox对象的位置(left, top)只要确定了第一个位置和大小,便可以根据上个对象的 right, bottom 设置当前对象的位置了
    // 这是从左上往右下排列的示例,形似 \
    int x, y;
    x = y = 0;for (int i = 0; i < 5; i++)
    {
        PictureBox box = new PictureBox();
        box.BorderStyle = BorderStyle.FixedSingle;    if (i == 0) box.SetBounds(0, 0, 100, 100);
        else box.SetBounds(x, y, 100, 100);    x = box.Right;
        y = box.Bottom;    this.Controls.Add(box);
    }