/// <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("正则表达式不能为空!"); } }