我想根据数据库的内容,创建控件!!
但是在窗体中显示不出来!!
以下是代码
  if(dt.Rows.Count>0)
            {
                for(int i=0;i<dt.Rows.Count;i++)
                {
                    LinkLabel  a=new   LinkLabel();
                   
                    a.Name=i.ToString();
                    
                    int Xpos=Convert.ToInt32(dt.Rows[i][3].ToString());
                    int Ypos=Convert.ToInt32(dt.Rows[i][4].ToString());
                    Point point=new Point(Xpos,Ypos);
                    a.Tag=point;
                    
                    a.Location=new Point(Xpos,Ypos);
                  a.Size=new Size(10,10);
                    
                    
                    Bitmap bit=new Bitmap(Login.Var.WXD_Image+"\\gif008.gif");
                    a.Image=(Image)bit;
                   
                    a.Click+=new EventHandler(LinkLable_Click);
                   
                    this.groupBox1.Controls.Add(a);
                   
              }
}
可能是a.Location=new Point(Xpos,Ypos);
如果把a.Left=Xpos;就可以显示出来!!!!
不知道怎么解决,请大家帮忙!!

解决方案 »

  1.   

    if (Ypos < 0 || Ypos > groupBox1.Height)
      throw new Exception("控件放在你看不见的地方了");
      

  2.   


    CheckBox[] myChkW = new CheckBox[24];
    private void ShowchkRoomArray()
    {
    sqlCommdRomm="select room_id from room_info"; for(i = 0; i < DB.GetDataSet(sqlCommdRomm,"room_info").Tables["room_info"].Rows.Count; i++)
    {
    numberTochina();
    myChkW[i] = new CheckBox(); //创建对象的实例24, 32
    myChkW[i].Location = new System.Drawing.Point(75 + 90 * (i % 4),60 + 25 * (i / 4));
    myChkW[i].Name = "checkBox";
    myChkW[i].Size = new System.Drawing.Size(80,24);
    myChkW[i].Text =DB.GetDataSet(sqlCommdRomm,"room_info").Tables["room_info"].Rows[i][0].ToString().Trim() +"机房";
    myChkW[i].FlatStyle=FlatStyle.Popup;
    myChkW[i].Click += new System.EventHandler(this.myChkW_CheckedChanged); //统一的事件处理
    this.Controls.Add(myChkW[i]); //在窗体上呈现控件
    }
    }
    这个是我动态创建  chexkbox的代码  可以实现的