📄 main.cs
字号:
return;
}
StreamReader reader = new StreamReader(@"mode.htm");
string News = reader.ReadToEnd();
reader.Close();
string Title = dataGridViewNewsList.Rows[e.RowIndex].Cells[0].Value.ToString();
if (Title == "")
{
return;
}
string PubDate = dataGridViewNewsList.Rows[e.RowIndex].Cells[1].Value.ToString();
string Author = dataGridViewNewsList.Rows[e.RowIndex].Cells[2].Value.ToString();
string Description = dataGridViewNewsList.Rows[e.RowIndex].Cells[3].Value.ToString();
string Category = dataGridViewNewsList.Rows[e.RowIndex].Cells[4].Value.ToString();
string Link = dataGridViewNewsList.Rows[e.RowIndex].Cells[5].Value.ToString();
News = News.Replace("&Author", Category);
News = News.Replace("&TITLE", Title);
News = News.Replace("&PubDate", PubDate);
News = News.Replace("&Author", Author);
News = News.Replace("&Description", Description);
News = News.Replace("&LINK", Link);
News = News.Replace("&READ", "阅读全文");
webBrowserNewsList.DocumentText = News;
splitContainer2.Panel2Collapsed = false;
//CreateWebSite(Link);
}
catch (Exception ee)
{
//MessageBox.Show(ee.Message);
}
}
/// <summary>
/// 删除选中的RSS频道或频道组
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void 删除目录RSS站点ToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
MyTreeNode node = (MyTreeNode)TreeViewMenu.SelectedNode;
string path = TreeViewMenu.SelectedNode.FullPath;
if (node.IsFolder)
{
path = GetXpath(path, "YES");
DeleteNode(path, "NO");
}
else
{
path = GetXpath(path, "NO");
DeleteNode(path, node.MyRssLink.Link);
}
node.Remove();
//BindNode();
}
catch
{
;
}
}
/// <summary>
/// 获取频道的在XML文件中存储的对象的XML节点路径
/// </summary>
/// <param name="path"></param>
/// <param name="IsFolder"></param>
/// <returns></returns>
string GetXpath(string path, string IsFolder)
{
char[] c1 = new char[1] { '\\' };
string[] url = path.Split(c1);
string Xpath = @"/config/tree";
int a;
a = url.Length;
int i;
for (i = 0; i < a - 1; i++)
{
Xpath = Xpath + "/folder[@name=\"" + url[i] + "\"]";
}
if (IsFolder == "YES")
{
Xpath = Xpath + "/folder[@name=\"" + url[i] + "\"]";
}
else
{
Xpath = Xpath + "/channel";
}
return Xpath;
}
/// <summary>
/// 删除RSS频道或频道组
/// </summary>
/// <param name="Path"></param>
/// <param name="Link"></param>
void DeleteNode(string Path, string Link)
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(RSS.GetMenuFileUrl());
if (Link == "NO")
{
XmlNode node = xmlDoc.SelectSingleNode(Path);//追击节点的起始位置
node.RemoveAll();
node.ParentNode.RemoveChild(node);
}
else
{
XmlNodeList nodelist = xmlDoc.SelectNodes(Path);//追击节点的起始位置
foreach (XmlNode nd in nodelist)
{
if (nd["link"] != null && nd["link"].InnerText == Link)
{
nd.RemoveAll();
nd.ParentNode.RemoveChild(nd);
}
}
}
xmlDoc.Save(RSS.GetMenuFileUrl());//保存到xml文件中
}
/// <summary>
/// 添加RSS频道组
/// </summary>
/// <param name="Path"></param>
/// <param name="Name"></param>
void AddFolder(string Path, string Name)
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(RSS.GetMenuFileUrl());
XmlNode node = xmlDoc.SelectSingleNode(Path);//追击节点的起始位置
XmlElement element0 = xmlDoc.CreateElement("folder");//创建一个节点
element0.SetAttribute("name", Name);
element0.SetAttribute("open", "1");
node.AppendChild(element0);//将所以节点添加到起始位置下
xmlDoc.Save(RSS.GetMenuFileUrl());//保存到xml文件中
}
/// <summary>
/// 添加目录按牛触发的事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void 添加目录ToolStripMenuItem_Click(object sender, EventArgs e)
{
ShowAdd();
toolAddFolder.Visible = true;
}
void ShowAdd()
{
if (!splitContainer1.Panel2Collapsed)
{
splitContainer1.Panel2Collapsed = true;
}
else
{
splitContainer1.Panel2Collapsed = false;
}
}
/// <summary>
/// 判断是否存在该RSS频道组
/// </summary>
/// <param name="FolderName"></param>
/// <returns></returns>
bool IsExistFolder(string FolderName)
{
TreeNode Node = TreeViewMenu.SelectedNode;
TreeNodeCollection Nodes = Node.Nodes;
foreach (TreeNode MyNode in Nodes)
{
if (MyNode.Text == FolderName)
return true;
}
return false;
}
bool JuBuFree = true;
/// <summary>
/// 更新事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void 更新ToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
ThreadMyTreeNode = ((MyTreeNode)TreeViewMenu.SelectedNode);
if (ThreadMyTreeNode.IsFolder)
{
if (!JuBuFree)
{
return;
}
JuBuFree = false;
object oo = new object();
lock (oo)
{
txtOutPut.Text = "开始更新......";
txtOutPut.ForeColor = Color.Red;
JuBuTreadAllNode = TreeViewMenu.SelectedNode;
if (JuBuTreadAllNode.NextNode != null)
{
LastTreeNode = JuBuTreadAllNode.NextNode;
}
else
{
TreeNode tnode;
tnode = JuBuTreadAllNode;
while (!(tnode != null && tnode.NextNode != null))
{
tnode = tnode.Parent;
if (tnode == null)
break;
}
if (tnode == null)
{
LastTreeNode = tnode;
}
else
{
LastTreeNode = tnode.NextNode;
}
}
btnUpdate.Enabled = false;
Thread m_thread;
m_thread = new Thread(new ThreadStart(JuBuBeginThread));
m_thread.SetApartmentState(ApartmentState.STA);
m_thread.Start();
}
}
else if (ThreadMyTreeNode != null)
{
if (UpdateName != "Busy1")
{
UpdateName = "Busy";
Thread MyThread = new Thread(new ThreadStart(UpdateNews));
MyThread.Priority = ThreadPriority.AboveNormal;
MyThread.Start();
}
}
}
catch (Exception)
{
ThreadMyTreeNode = null;
}
}
/// <summary>
/// 单击鼠标右件来定位该坐标处的节点
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void TreeViewMenu_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
TreeNode tn = TreeViewMenu.GetNodeAt(e.X, e.Y);
if (tn != null) TreeViewMenu.SelectedNode = tn;
}
}
/// <summary>
/// 添加RSS频道
/// </summary>
/// <param name="Path"></param>
/// <param name="Name"></param>
/// <param name="Link"></param>
void AddRssSite(string Path, string Name, string Link)
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(RSS.GetMenuFileUrl());
XmlNode node = xmlDoc.SelectSingleNode(Path);//追击节点的起始位置
XmlElement element0 = xmlDoc.CreateElement("channel");//创建一个节点
XmlElement element1 = xmlDoc.CreateElement("name");
XmlElement element2 = xmlDoc.CreateElement("link");
element1.InnerText = Name;
element2.InnerText = Link;
element0.AppendChild(element1);
element0.AppendChild(element2);
node.AppendChild(element0);//将所以节点添加到起始位置下
xmlDoc.Save(RSS.GetMenuFileUrl());//保存到xml文件中
}
/// <summary>
/// 添加RSS频道按扭事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void 添加RSS站点ToolStripMenuItem_Click(object sender, EventArgs e)
{
ShowAdd();
toolAddFile.Visible = true;
}
private void toolStripButton1_Click(object sender, EventArgs e)
{
if (!splitContainer2.Panel1Collapsed)
{
splitContainer2.Panel1Collapsed = true;
}
else
{
splitContainer2.Panel1Collapsed = false;
}
}
private void toolStripButton2_Click(object sender, EventArgs e)
{
if (!splitContainer2.Panel1Collapsed)
{
splitContainer2.Panel1Collapsed = true;
}
else
{
splitContainer2.Panel1Collapsed = false;
}
}
/// <summary>
/// 双击连接该RSS频道单元
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void dataGridViewNewsList_DoubleClick(object sender, EventArgs e)
{
try
{
if (dataGridViewNewsList.SelectedCells[0].RowIndex < 0)
{
return;
}
string Link = dataGridViewNewsList.Rows[dataGridViewNewsList.SelectedCells[0].RowIndex].Cells[5].Value.ToString();
webBrowserNewsList.Url = new Uri(Link);
CreateWebSite(Link);
splitContainer2.Panel2Collapsed = false;
}
catch (Exception ee)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -