📄 main.cs
字号:
MyTreeNode c;
c = (MyTreeNode)JuBuTreadAllNode;
if (!c.IsFolder)
{
this.Invoke(T2, null);
string FileUrl = RSS.FormatUrl(c.MyRssLink.Link);
if (FileUrl != "")
{
RSS MyRss = new RSS();
//while (!FREE) ;
MyRss.UpdateNews(c.MyRssLink.Link);
}
}
this.Invoke(T3, null);
this.Invoke(T1, null);
}
}
catch (Exception e)
{
}
finally
{
}
}
#endregion
#endregion
private void 频道ToolStripMenuItem_Click(object sender, EventArgs e)
{
UpdateAllNews();
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
TreadAllNode = null;
Application.Exit();
}
private void 展开全部ToolStripMenuItem_Click(object sender, EventArgs e)
{
TreeViewMenu.ExpandAll();
}
private void 折叠全部ToolStripMenuItem_Click(object sender, EventArgs e)
{
TreeViewMenu.CollapseAll();
}
private void toolStripButton3_Click_2(object sender, EventArgs e)
{
InitWebBrowser();
}
private void StopUpdate_Click(object sender, EventArgs e)
{
if (TreadAllNode != null)
{
TreadAllNode.ImageIndex = 3;
}
if (JuBuTreadAllNode != null)
{
JuBuTreadAllNode.ImageIndex = 3;
}
//TreadAllNode = null;
JuBuTreadAllNode = null;
txtOutPut.Text = "";
}
private void toolStripLabel1_Click(object sender, EventArgs e)
{
InitWebBrowser();
}
private void btnAddFolder_Click(object sender, EventArgs e)
{
try
{
string path;
MyTreeNode ChildNode = new MyTreeNode(true);
if (TreeViewMenu.SelectedNode == null)
{
path = @"/config/tree";
if (FolderName.Text.Trim() == "")
{
MessageBox.Show("频道组不能为空");
return;
}
AddFolder(path, FolderName.Text.Trim());
ChildNode.Text = FolderName.Text.Trim();
ChildNode.ContextMenuStrip = contextMenuStrip1;
ChildNode.ImageIndex = 0;
TreeViewMenu.Nodes.Add(ChildNode);
ShowAdd();
toolAddFolder.Visible = false;
}
else
{
MyTreeNode node = (MyTreeNode)TreeViewMenu.SelectedNode;
path = TreeViewMenu.SelectedNode.FullPath;
if (node.IsFolder)
{
path = GetXpath(path, "YES");
if (FolderName.Text.Trim() == "")
{
return;
}
if (!IsExistFolder(FolderName.Text.Trim()))
{
AddFolder(path, FolderName.Text.Trim());
ChildNode.Text = FolderName.Text.Trim();
ChildNode.ContextMenuStrip = contextMenuStrip1;
ChildNode.ImageIndex = 0;
node.Nodes.Add(ChildNode);
splitContainer1.Panel2Collapsed = false;
toolAddFolder.Visible = false;
}
else
{
MessageBox.Show("该层次上此目录已经存在,不允许在同一层次上添加相同目录");
return;
}
//BindNode();
}
else
{
MessageBox.Show("该处不能添加目录");
}
}
}
catch
{
}
}
bool IsExistRssWebSite(string RssWebSite)
{
string Xpath = @"//channel[link='" + RssWebSite + "']";
XmlDocument xmlPort = new XmlDocument();
xmlPort.Load(RSS.GetMenuFileUrl());
XmlNode node = xmlPort.SelectSingleNode(Xpath);
if (node != null)
return true;
else
return false;
}
private void btnAddFile_Click(object sender, EventArgs e)
{
try
{
MyTreeNode node = (MyTreeNode)TreeViewMenu.SelectedNode;
string path = TreeViewMenu.SelectedNode.FullPath;
if (node.IsFolder)
{
RSSLink MyrssLink = GetFileName();
path = GetXpath(path, "YES");
if (MyrssLink == null)
{
return;
}
AddRssSite(path, MyrssLink.Name, MyrssLink.Link);
MyTreeNode ChildeNode = new MyTreeNode(false);
ChildeNode.MyRssLink = new RSSLink();
ChildeNode.MyRssLink.Name = MyrssLink.Name;
ChildeNode.MyRssLink.Link = MyrssLink.Link;
ChildeNode.ContextMenuStrip = contextMenuStrip1;
ChildeNode.ImageIndex = 3;
ChildeNode.SelectedImageIndex = 4;
BindNode();
splitContainer1.Panel2Collapsed = false;
toolAddFile.Visible = false;
}
else
{
MessageBox.Show("该处不能添加站点");
}
}
catch
{
;
}
}
RSSLink GetFileName()
{
RSSLink MyrssLink = null;
try
{
if (FileName.Text.Trim() != "")
{
if (IsExistRssWebSite(FileName.Text.Trim()))
{
MessageBox.Show("已经存在该RSS站点");
return MyrssLink;
}
string LinkUrl = FileName.Text.Trim();
XmlDocument xmlPort = new XmlDocument();
xmlPort.Load(LinkUrl);
XmlNode Node;
Node = xmlPort.SelectSingleNode("//channel");
if (Node["title"] != null)
{
MyrssLink = new RSSLink();
MyrssLink.Name = Node["title"].InnerText;
MyrssLink.Link = LinkUrl;
if (MyrssLink.Name.Trim() == "")
{
MyrssLink.Name = "未知名称";
}
}
return MyrssLink;
}
else
{
return MyrssLink;
}
}
catch
{
MessageBox.Show("该RSS站点不是有效站点,请重新输入如http://rss.sina.com.cn/news/marquee/ddt.xml格式的RSS站点");
return MyrssLink;
}
}
private void toolStripButton2_Click_1(object sender, EventArgs e)
{
splitContainer1.Panel2Collapsed = false;
toolAddFolder.Visible = false;
}
private void toolStripButton1_Click_1(object sender, EventArgs e)
{
splitContainer1.Panel2Collapsed = false;
toolAddFile.Visible = false;
}
private void splitContainer1_SplitterMoved(object sender, SplitterEventArgs e)
{
}
private void btnSearch_Click(object sender, EventArgs e)
{
try
{
if (txtSearchword.Text.Trim() != "")
{
List<RSSNews> NewsList = new List<RSSNews>();
NewsList = RSS.SearchNewsList(txtSearchword.Text.Trim());
DataTable dt = new DataTable();
dt.Columns.Add("标题(双击查看)");
dt.Columns.Add("发布日期");
dt.Columns.Add("作者");
dt.Columns.Add("Description");
dt.Columns.Add("Category");
dt.Columns.Add("Link");
foreach (RSSNews MyRssNew in NewsList)
{
DataRow row = dt.Rows.Add();
row["标题(双击查看)"] = MyRssNew.Title;
row["作者"] = MyRssNew.Author;
row["Category"] = MyRssNew.Category;
row["发布日期"] = MyRssNew.PubDate;
row["Description"] = MyRssNew.Description;
row["Link"] = MyRssNew.Link;
}
dataGridViewNewsList.DataSource = dt;
dataGridViewNewsList.Columns["标题(双击查看)"].Width = 400;
dataGridViewNewsList.Columns["发布日期"].Width = 200;
dataGridViewNewsList.Columns["作者"].Width = 200;
dataGridViewNewsList.Columns["Category"].Visible = false;
dataGridViewNewsList.Columns["Description"].Visible = false;
dataGridViewNewsList.Columns["Link"].Visible = false;
GetAllNews(NewsList);
}
}
catch
{
;
}
}
private void Form1_Mini(object sender, System.EventArgs e)
{
if (this.WindowState == FormWindowState.Minimized)
{
this.Visible = false;
this.notifyIcon1.Visible = true;
}
}
private void 退出PRRToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Close();
}
private void notifyIcon1_MouseClick(object sender, MouseEventArgs e)
{
this.Visible = true;
this.WindowState = FormWindowState.Maximized;
this.Activate();
this.notifyIcon1.Visible = false;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -