日期:2014-05-18  浏览次数:20938 次

ilist<XX> aa的累加,重复值
windows程序
form a
  开始请求数据库获得ilist<XX> aaa 的数据列表

将数据 初始化构造函数 form b<ilist<xx>;( form a中每隔一段时间 请求数据库获得数据,有数据时初始化formb)

form b 显示, buttonclick事件中label 每次显示 ilist<XX>中的一个值;
全部显示完毕后,关闭formb

  问题:
  form a 中带数据初始化构造函数 form b<ilist<xx>;
  form b显示, 此时 不去点击form b的button事件;
  form a中每隔一段时间 请求数据库获得数据, 重新初始化form b;如果formb 没有关闭 form b form b.Activate();获得焦点显示

if (b== null||form.IsDisposed)
  {
  b= new MainForm(noticereport, count);
  b.StartPosition = FormStartPosition.CenterScreen;
  b.Show();
  }
  else
  {
  b= new MainForm(noticereport, count);
  b.Activate();
  }


当再次点击buttonclick事件时,ilist<$%^&>中就会有累加的重复值



form b

  public MainForm(IList<T_Notice> list,int count)
  {
  InitializeComponent();
  dis_count = count;
  //noticelist = new List<T_Notice>(); //1
  //noticelist.Clear(); //2 1+2 ilist.clear()也不可以
  noticelist = list;
  dis_num = 1;
  this.label2.Text = list[0].N_TITLE;
  this.label1.Text = " " + list[0].N_CONTENT;
  this.lb_nid.Text = list[0].N_NUM.ToString();

  }

求方案

------解决方案--------------------
你再一次获取数据后,填充list时,先清空list,然后填充,填充后,将新list传个B