private void toolStripButtonDelete_Click(object sender, EventArgs e) { if (trvwRsses.SelectedNode.Level == 2) //删除RSS节点 { if (DialogResult.Yes == MessageBox.Show("真的要删除选中的RSS来源吗?", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Warning)) { RssDAL.Delete(trvwRsses.SelectedNode.Name); BindTreeView(); } } else if (trvwRsses.SelectedNode.Level == 1) //删除分类节点 { string categoryID = trvwRsses.SelectedNode.Name; if (DialogResult.Yes == MessageBox.Show("真的要删除选中的分类,包括分类下所有的RSS来源吗?", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Warning)) { //删除分类下的所有 RSS 来源 foreach ( var r in RssDAL.GetAllRsses().Where(r => r.Category.ToString() == categoryID)) { RssDAL.Delete(r.ID.ToString()); } //删除分类本身 CategoryDAL.Delete(categoryID); BindTreeView(); } } }
//点击 “确定”按钮 private void btnOK_Click(object sender, EventArgs e) { string title = txtTitle.Text.Trim(); string url = txtUrl.Text.Trim(); string desciption = txtDescription.Text.Trim(); int category = Convert.ToInt32(Tag); var newRss = new RssInfo() { Title = title, Description = desciption, Url = url, Category = category }; if (_rss == null) { //添加新的 RSS RssDAL.Add(newRss); } else { //修改已有 RSS RssDAL.Update(_rss.ID, newRss); } OnDataChanged(); Close(); }
private void trvRsses_AfterSelect(object sender, TreeViewEventArgs e) { //将当前选中节点的 KEY 赋值给 Tag 属性 trvwRsses.Tag = trvwRsses.SelectedNode.Name; SetToolStrip(); if (trvwRsses.SelectedNode.Level == 2) //选中的是 RSS 节点 { SaveRssToXmlFile(RssDAL.GetRssById(Convert.ToInt32(trvwRsses.SelectedNode.Name)).Url); TransformResult(); ShowResult(); } }
//点击 “编辑” 按钮 private void toolStripButtonEdit_Click(object sender, EventArgs e) { if (trvwRsses.SelectedNode.Level == 2) //RSS 节点 { var frm = new frmRssEditor(RssDAL.GetRssById(Convert.ToInt32(trvwRsses.SelectedNode.Name))); //当在 RssEditor 窗体修改数据后执行 Frm_DataChanged 事件处理程序 frm.DataChanged += Frm_DataChanged; frm.ShowDialog(); } else if (trvwRsses.SelectedNode.Level == 1) //分类节点 { var frm = new frmCategoryEditor(CategoryDAL.GetCategoryById(Convert.ToInt32(trvwRsses.SelectedNode.Name))); //当在 CategoryEditor 窗体修改数据后执行 Frm_DataChanged 事件处理程序 frm.DataChanged += Frm_DataChanged; frm.ShowDialog(); } }
private void BindTreeView() { trvwRsses.Nodes.Clear(); //增加根节点(全部分类) TreeNode rootNode = new TreeNode("所有分类", 0, 0) { Name = "/" }; trvwRsses.Nodes.Add(rootNode); //增加所有分类 foreach (var category in CategoryDAL.GetAllCategories()) { rootNode.Nodes.Add(new TreeNode(category.CategoryName, 1, 1) { Name = category.ID.ToString() }); } var rsses = RssDAL.GetAllRsses(); //增加所有 RSS 节点 foreach (TreeNode node in trvwRsses.Nodes["/"].Nodes) { foreach (var rss in rsses.Where(r => r.Category.ToString() == node.Name)) { node.Nodes.Add(new TreeNode(rss.Title, 2, 2) { Name = rss.ID.ToString(), ToolTipText = rss.Description }); } } trvwRsses.ExpandAll(); }