⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cs

📁 PRR(个性RSS阅读器) PRR是一款全新的快捷实用的RSS阅读器
💻 CS
📖 第 1 页 / 共 4 页
字号:
            {
                // 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 + -