C#中动态控件销毁问题-创建窗口句柄出错
根据后台返回的记录条数,对每条记录生成动态button,并为每个控件添加Click事件,每6秒调用下面这过程,我的解决办法是把以前创建的全清除了,再创建新的,但运行一段时间后就出问题了说我  ----创建窗口句柄出错,帮我解决下
private   void furInfoDisplay1(DataTable datatable)//
 {
  DataView dataView= new DataView(datatable);
dataView.RowFilter="ch_no=1";
 Button tbfur=null;//表示坯料的中间变量
try
  {   
  int count = dataView.Count ;
  int i=0;
  Panel1.Controls.Clear ();//先移除Panel1里面的所有控件 
  GC.Collect(); //这句加了还是出问题的   
  for(i =1;i<=count;i++)   
  {   
    Button   button   =   new   Button();   
  button.Name   =   "butto"+i.ToString();   
  button.TabIndex =700+i;             
  button.Visible =true ;     
  button.Click   +=   new   System.EventHandler(button_Click1);//添加事件
    Panel1.Controls.Add (button) ;//在Panel1中显示这些按钮
}
  tbfur=(Button)this.Panel1.GetNextControl(tbfur,true);
  double slabLength=0,slabWidth=0;
  foreach(DataRowView   row   in dataView)
  {
    tbfur.Text=row["slab_id"].ToString();//运行一段时间到这就说创建窗口句柄出错,开1个1小时出现,开2个半小时出现,出现这问题了 整个机器不能打开其它文件,大半是内存益出了
  slabLength=Convert.ToDouble(row["slab_length"].ToString());//设置坯料的位置和尺寸
  slabWidth=Convert.ToDouble(row["slab_width"].ToString());
  tbfur.Width=(int)(slabLength/100);
  tbfur.Height=(int)(slabWidth/75);
  int position=(int)row["furposition"];
  tbfur.Top=Panel1.Height- tbfur.Height - (position/75);
  tbfur=(Button)this.Panel1.GetNextControl(tbfur,true);//取下一个按钮表示下一 坯料   
      }
}