/// <summary>
        /// 绑定正则表达式列表,根据网站
        /// </summary>
        /// <param name="site"></param>
        public void BindRegularList(Site site)
        {
            using (RegularDAL dal = new RegularDAL())
            {
                regularList = dal.GetRegularList(site);
            }

            //清理原来数据
            lv_ExpressionList.Items.Clear();
            lv_ExpressionList.Columns.Clear();

            //初始化listview的列头
            UIHelper.InitListView(lv_ExpressionList, "正则表达式", "文章类型");

            try
            {
                foreach (var item in regularList)
                {
                    ListViewItem lvi = new ListViewItem();
                    lvi.Text = item.Name;
                    lvi.SubItems.Add(item.Type.Name);
                    lvi.Name = item.ID.ToString();

                    lv_ExpressionList.Items.Add(lvi);
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
        private void btn_Collect_Click(object sender, EventArgs e)
        {
            lab_statu.Text = "就绪。。。";
            string html = String.Empty;

            List<Regular> regularList = new List<Regular>();
            articleList.Clear();

            if (menu_SiteCombox.ComboBox.SelectedItem!=null)
            {
                Collect collect = new Collect();

                // 得到相应的网页字符串
                html = collect.GetHtmlString(
                    collect.GetWebResponse(
                        (menu_SiteCombox.ComboBox.SelectedItem as Site).Address.ToString()));

                using (RegularDAL dal = new RegularDAL())
                {
                    // 得到相应网站的正则列表
                    regularList = dal
                        .GetRegularList(menu_SiteCombox.ComboBox.SelectedItem as Site);
                }

                CheckForIllegalCrossThreadCalls = false;

                // 使用另外一个线程来采集文章
                // 保证UI不阻塞
                Thread th = new Thread(new ThreadStart(()=> {
                    //设置

                    foreach (var item in regularList)
                    {
                        addressList.AddRange(collect.GetArticleAddress(item, html));
                    }
                    //addressList.AddRange(collect.GetArticleAddress(html));
                    //设置进度条的最大值和初始值
                    //最大值是所有的地址的数量
                    pro_CollectProcess.Invoke(new Action(() => {
                        pro_CollectProcess.Maximum = addressList.Count;
                        pro_CollectProcess.Value = 0;
                    }));

                    lab_statu.Text = "开始采集";
                    //遍历地址列表
                    foreach (var address in addressList)
                    {
                        Article article = collect.GetArticle(address);
                        if (article.Time<DateTime.Now.Date)
                        {
                            continue;
                        }
                        articleList.Add(collect.GetArticle(address));
                        pro_CollectProcess.Invoke(new Action(() =>
                        {
                            pro_CollectProcess.Value += 1;
                        }));
                    }
                    lab_statu.Text = "采集完毕";
                    BindArticleList();
                }));
                th.IsBackground = true;
                th.Start();
                //绑定文章信息到listview

            }
        }
 private void toolMenuItem_DelRegular_Click(object sender, EventArgs e)
 {
     if (lv_ExpressionList.SelectedIndices.Count>0)
     {
         using (RegularDAL dal = new RegularDAL ())
         {
             Regular regular = dal.GetRegular(Guid.Parse(lv_ExpressionList.SelectedItems[0].Name));
             if (!dal.DelRegular(regular))
             {
                 MessageBox.Show("删除失败");
                 return;
             }
             lv_ExpressionList.Items.Remove(lv_ExpressionList.SelectedItems[0]);
             regularList.Remove(regular);
         }
     }
 }
        private void btn_OK_Click(object sender, EventArgs e)
        {
            if (!String.IsNullOrEmpty(txt_NewExpression.Text))
            {
                using (RegularDAL dal = new RegularDAL ())
                {
                    if (dal.GetRegular(txt_NewExpression.Text.Trim()) == null)
                    {
                        Regular regular = new Regular()
                        {
                            ID = Guid.NewGuid(),
                            Name = txt_NewExpression.Text.Trim(),
                            Site = comb_Site.SelectedItem as Site,
                            Type = comb_TypeList.SelectedItem as Entities.Type
                        };

                        if (dal.AddRegular(regular))
                        {
                            txt_NewExpression.Text = "";
                            BindRegularList(comb_Site.SelectedItem as Site);
                            MessageBox.Show("添加成功!");
                        }
                        else
                        {
                            MessageBox.Show("添加失败!");
                        }
                    }
                    else {
                        MessageBox.Show("该正则已存在!");
                    }
                }
            }
            else
            {
                MessageBox.Show("正则表达式不能为空!");
            }
        }