📄 main.cs
字号:
{
// MessageBox.Show(ee.Message);
}
}
private void toolStripButton3_Click(object sender, EventArgs e)
{
if (webBrowserNewsList.CanGoBack)
webBrowserNewsList.GoBack();
}
private void toolStripButton4_Click(object sender, EventArgs e)
{
if (webBrowserNewsList.CanGoForward)
webBrowserNewsList.GoForward();
}
private void toolStripButton5_Click(object sender, EventArgs e)
{
webBrowserNewsList.Stop();
}
private void toolStripButton6_Click(object sender, EventArgs e)
{
webBrowserNewsList.Refresh();
}
private void toolStripButton7_Click(object sender, EventArgs e)
{
webBrowserNewsList.GoHome();
}
private void toolStripButton8_Click(object sender, EventArgs e)
{
string Url = toolStripTextBox2.Text.Trim();
if (Url != "")
{
CreateWebSite(Url);
}
}
private void DeleteToolStripButton(object sender, EventArgs e)
{
}
/// <summary>
/// 浏览器连接WebSiteUrl
/// </summary>
/// <param name="WebSiteUrl"></param>
void CreateWebSite(string WebSiteUrl)
{
customNavigate(webBrowserNewsList, WebSiteUrl);
}
private void customNavigate(WebBrowser target, string address)
{
try
{
target.Navigate(address);
}
catch
{
target.Navigate("about:blank");
}
}
private void toolStripButton9_Click(object sender, EventArgs e)
{
if (!splitContainer2.Panel2Collapsed)
{
splitContainer2.Panel2Collapsed = true;
}
else
{
splitContainer2.Panel2Collapsed = false;
}
}
private void webBrowserNewsList_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
toolStripTextBox2.Text = e.Url.ToString();
//DownBar.Visible = false;
}
private void webBrowserNewsList_ProgressChanged(object sender, WebBrowserProgressChangedEventArgs e)
{
DownBar.Visible = true;
if (DownBar.Value >= DownBar.Maximum)
{
DownBar.Visible = false;
}
DownBar.Maximum = (int)e.MaximumProgress;
DownBar.Minimum = 0;
DownBar.Value = (int)e.CurrentProgress;
}
private void toolStrip3_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
}
#region 线程遍历树节点
TreeNode TreadAllNode = new TreeNode();
TreeNode JuBuTreadAllNode = new TreeNode();
TreeNode LastTreeNode = new TreeNode();
int ChannalCount = 0;
delegate void TreadAllDelegate();
public void TreadAllSetNode1()
{
if (TreadAllNode != null)
{
txtOutPut.Text = "正在更新:" + TreadAllNode.FullPath + "(已更新" + ChannalCount.ToString() + "个)";
ChannalCount++;
TreadAllNode.ImageIndex = 5;
TreadAllNode.SelectedImageIndex = 5;
}
}
public void TreadAllSetNode2()
{
MyTreeNode mt = (MyTreeNode)TreadAllNode;
if (mt == null)
return;
if (!mt.IsFolder)
{
TreadAllNode.ImageIndex = 3;
TreadAllNode.SelectedImageIndex = 4;
}
else
{
TreadAllNode.ImageIndex = 0;
TreadAllNode.SelectedImageIndex = 0;
}
}
/// <summary>
/// 获取当前节点的下一个树节点
/// </summary>
void GetNextNode()
{
if (TreadAllNode != null)
{
if (TreadAllNode.FirstNode != null)
{
TreadAllNode = TreadAllNode.FirstNode;
}
else if (TreadAllNode.NextNode != null)
{
TreadAllNode = TreadAllNode.NextNode;
}
else
{
TreeNode tnode;
tnode = TreadAllNode;
while (!(tnode != null && tnode.NextNode != null))
{
tnode = tnode.Parent;
if (tnode == null)
break;
}
if (tnode == null)
{
TreadAllNode = tnode;
}
else
{
TreadAllNode = tnode.NextNode;
}
}
if (TreadAllNode == null)
{
txtOutPut.Text = "更新完毕" + "(共" + ChannalCount.ToString() + "个频道)";
}
}
}
/// <summary>
/// 开始线程遍历
/// </summary>
void BeginThread()
{
try
{
TreadAllDelegate T1 = new TreadAllDelegate(GetNextNode);
TreadAllDelegate T2 = new TreadAllDelegate(TreadAllSetNode1);
TreadAllDelegate T3 = new TreadAllDelegate(TreadAllSetNode2);
this.Invoke(T1, null);
while (TreadAllNode != null)
{
MyTreeNode c;
c = (MyTreeNode)TreadAllNode;
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
{
}
}
#region 局部更新线程
/// <summary>
///线程用户界面更新,用委托实现调用主窗体线程更新
/// </summary>
public void JuBuTreadAllSetNode1()
{
if (JuBuTreadAllNode != null)
{
txtOutPut.Text = "正在更新" + JuBuTreadAllNode.FullPath;
JuBuTreadAllNode.ImageIndex = 5;
JuBuTreadAllNode.SelectedImageIndex = 5;
}
else
{
txtOutPut.Text = "";
JuBuFree = true;
}
}
/// <summary>
///线程用户界面更新,用委托实现调用主窗体线程更新
/// </summary>
public void JubuTreadAllSetNode2()
{
MyTreeNode mt = (MyTreeNode)JuBuTreadAllNode;
if (mt == null)
return;
if (!mt.IsFolder)
{
JuBuTreadAllNode.ImageIndex = 3;
JuBuTreadAllNode.SelectedImageIndex = 4;
}
else
{
JuBuTreadAllNode.ImageIndex = 0;
JuBuTreadAllNode.SelectedImageIndex = 0;
}
}
/// <summary>
/// 获取当前节点的下一个树节点
/// </summary>
void JuBuGetNextNode()
{
if (JuBuTreadAllNode == LastTreeNode || JuBuTreadAllNode == null)
{
JuBuTreadAllNode = null;
//txtOutPut.Text = "更新完毕" ;
btnUpdate.Enabled = true;
JuBuFree = true;
}
else
{
if (JuBuTreadAllNode.FirstNode != null)
{
JuBuTreadAllNode = JuBuTreadAllNode.FirstNode;
}
else if (JuBuTreadAllNode.NextNode != null)
{
JuBuTreadAllNode = JuBuTreadAllNode.NextNode;
}
else
{
TreeNode tnode;
tnode = JuBuTreadAllNode;
while (!(tnode != null && tnode.NextNode != null))
{
tnode = tnode.Parent;
if (tnode == null)
break;
}
// TreadAllNode.Parent.Collapse();
if (tnode == null)
{
JuBuTreadAllNode = tnode;
}
else
{
JuBuTreadAllNode = tnode.NextNode;
}
}
if (JuBuTreadAllNode == null)
{
JuBuTreadAllNode = null;
btnUpdate.Enabled = true;
//txtOutPut.Text = "更新完毕";
JuBuFree = true;
}
}
}
void UpdateAllNews()
{
object oo = new object();
lock (oo)
{
ChannalCount = 0;
txtOutPut.ForeColor = Color.Red;
TreadAllNode = TreeViewMenu.TopNode;
Thread m_thread;
m_thread = new Thread(new ThreadStart(BeginThread));
m_thread.SetApartmentState(ApartmentState.STA);
m_thread.Start();
}
}
/// <summary>
/// 开始线程遍历
/// </summary>
void JuBuBeginThread()
{
try
{
TreadAllDelegate T1 = new TreadAllDelegate(JuBuGetNextNode);
TreadAllDelegate T2 = new TreadAllDelegate(JuBuTreadAllSetNode1);
TreadAllDelegate T3 = new TreadAllDelegate(JubuTreadAllSetNode2);
while (JuBuTreadAllNode != null)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -