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

📄 frmcsdnreader.cs

📁 是一款式CSDN阅读器,可以方便CSDN用户阅读自己感兴趣的内容!
💻 CS
📖 第 1 页 / 共 2 页
字号:
            {
                e.Node.SelectedImageKey = "folderopen";
                e.Node.ImageKey = "folderopen";
            }
        }

        private void TreeRoom_AfterCollapse(object sender, TreeViewEventArgs e)
        {
            if (e.Node.Nodes.Count > 0)
            {
                e.Node.SelectedImageKey = "folder";
                e.Node.ImageKey = "folder";
            }
        }

        private void TreeRoom_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e)
        {
           
            
            //将前一个打开的社区的全部帖子设为只读
            if (Setting.MarkAllReaded && Variant.CurrentRoom != null)
            {
                MarkRoomReaded();
            }

            //保存当前打开的社区信息
            SelectRoom(e.Node);

        }

        

        private void SelectRoom(TreeNode node)
        {
            ListViewFunc lFunc = new ListViewFunc(listTopics);
            
            
            Room r = null;
            if (node != null)
            {
                r = node.Tag as Room;
            }
            if (r != null)
            {
                Variant.CurrentRoom = r;

                node.Expand();
                node.EnsureVisible();
                
                if (r.IsGroup)
                {
                    node = new TreeviewFunc(TreeRoom).SelectNode(node);
                    if (node != null)
                    {
                        r = node.Tag as Room;
                    }
                }
                else
                {
                    this.TreeRoom.ContextMenu = this.treeviewPopupMenu;
                }
                listTopics.Tag = r;
                tpTopics.Text = r.Name;                
                lFunc.RefreshListView(r.ID );

                tabTopics.SelectedIndex = 0;
            
            }
            else
            {
                lFunc.Clear();

                Variant.CurrentRoom = null;

                TreeRoom.ContextMenu = null;
            }
        }

        private void MarkRoomReaded()
        {
            this.TrayIcon.Icon = this._CSDNIcon;

            ListViewFunc lFunc = new ListViewFunc(listTopics);
            foreach (ListViewItem item1 in listTopics.Items)
            {
                Topic t = item1.Tag as Topic;
                if ((t != null) && !t.HaveRead)
                {
                    t.HaveRead = true;
                    

                    lFunc.setListviewItemFont(item1, t);
                }
            }
            Room r = listTopics.Tag as Room;
            if (r != null)
            {
                r.UnreadItems = -1;
                r.Items = -1;

                TreeviewFunc tFunc = new TreeviewFunc(TreeRoom);
                tFunc.MarkRoomReaded(TreeRoom.Nodes, r.ID);
            }
        }

        private void tpopmnuRefresh_Click(object sender, EventArgs e)
        {
            if (Variant.CurrentRoom != null)
            {               
                RoomFunc rFunc = new RoomFunc(Variant.CurrentRoom);
                Variant.CurrentRoom.ManuleRefresh = true;

                rFunc.RefreshRoom();
            
            }
        }

        private void tpopmnuMarkAll_Click(object sender, EventArgs e)
        {
            if (Variant.CurrentRoom != null)
            {
                MarkRoomReaded();
            }
        }
        #endregion TreeRoom event

        #region Tray
        private void mnuTray_OpenForm_Click(object sender, EventArgs e)
        {
            this.ShowForm();
        }

        private void ShowForm()
        {
            if (!base.Visible)
            {
                base.WindowState = FormWindowState.Normal;
                base.Show();
            }
            base.Activate();
        }

        private void TrayIcon_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            this.ShowForm();
        }

        private void mnuTray_RefrashAll_Click(object sender, EventArgs e)
        {
            this.RefreshAllRooms();
        }

        private void RefreshAllRooms()
        {
            TreeviewFunc t = new TreeviewFunc(TreeRoom);
            t.RefreRooms(TreeRoom.Nodes);
        }

        

        private void mnuTray_Exit_Click(object sender, EventArgs e)
        {
            
            this.ExitApplication();
        }

        #endregion tray

        #region timer
        private void timerRefresh_Tick(object sender, EventArgs e)
        {
            timerRefresh.Enabled = false;
            timerRefresh.Interval = Setting.RefreshInterval;

            this.RefreshAllRooms();

            timerRefresh.Enabled = true;
        }

        
        /// <summary>
        /// 将当前打开的帖子设为只读
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void timerMarkRead_Tick(object sender, EventArgs e)
        {            
            this.timerMarkRead.Stop();
            MarkTopicReaded();
        }

        private void MarkTopicReaded()
        {
            this.TrayIcon.Icon = this._CSDNIcon;

            Room r = listTopics.Tag as Room;
            ListViewItem item1 = this.listTopics.FocusedItem;
            if (item1 != null && r!=null )
            {
                ListViewFunc lFunc = new ListViewFunc(listTopics);
                Topic t = item1.Tag as Topic;
                if ((t != null) && !t.HaveRead)
                {
                    t.HaveRead = true;
                    r.UnreadItems--;

                    

                    lFunc.setListviewItemFont(item1, t);


                    TreeviewFunc tFunc = new TreeviewFunc(TreeRoom);
                    tFunc.MarkRoomReaded(TreeRoom.Nodes, r.ID );                    
                }
            }
        }
        
        /// <summary>
        /// 打开当前选中的帖子
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void timerShowTopic_Tick(object sender, EventArgs e)
        {
            timerShowTopic.Stop();
            ListViewItem item1 = this.listTopics.FocusedItem;
            if (item1 != null)
            {
                ListViewFunc lFunc = new ListViewFunc(listTopics);
                Topic t = item1.Tag as Topic;
                if (t != null)
                {
                    TopicTabPage tpTopic = t.TabPage;
                    if (tpTopic == null)
                    {
                        tpTopic = new TopicTabPage();
                        
                        tabTopics.TabPages.Add(tpTopic);
                    }

                    t.TabPage = tpTopic;
                    tpTopic.Topic = t;

                    if(Setting.ShowTopicTab)
                    {
                        tabTopics.SelectedTab = tpTopic;
                    }
                    

                }
            }
        }

        #endregion timer

        #region listTopics events
        private void listTopics_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (listTopics.FocusedItem.Tag as Topic != null)
                listTopics.ContextMenuStrip =mnuPopTopic ;
            else
                listTopics.ContextMenuStrip = null;
        }

        private void listTopics_DoubleClick(object sender, EventArgs e)
        {
            this.ShowTopic();
        }
        #endregion listTopics events



        protected override void WndProc(ref   Message m)
        {
            const int WM_SYSCOMMAND = 0x0112;
            const int SC_CLOSE = 0xF060;
            const int SC_MINIMIZE = 0xF020;

            if (m.Msg == WM_SYSCOMMAND && ((int)m.WParam == SC_MINIMIZE || (int)m.WParam == SC_CLOSE))
            {
                //最小化到系统栏 
                this.Hide();
                return;
            }
            base.WndProc(ref   m);
        }

        #region tabTopics
        private void tabTopics_DoubleClick(object sender, EventArgs e)
        {
            TopicTabPage tpTopic = tabTopics.SelectedTab as TopicTabPage ;
            if (tpTopic != null)
            {

                
                tpTopic.Dispose();

            }

        }
        #endregion tabTopics

        private void mnuRoom_Login_Click(object sender, EventArgs e)
        {
            new frmLogin().ShowDialog();
        }

        /// <summary>
        /// 判断是否有新消息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void timerMessage_Tick(object sender, EventArgs e)
        {
            timerMessage.Enabled = false;
            timerMessage.Interval =  Setting.NewMessageInterval;

            
            WEBFunc wfunc=new WEBFunc();
            string strHtml = wfunc.GetHTML("http://message.csdn.net/newMessage.aspx");
            if (strHtml.IndexOf("ShowNewMessagePic") >= 0)
            {
                stuMsg.Text = "您有新的短消息!";
            }
            else
            {
                stuMsg.Text = "";
            }
            wfunc = null;
            
            timerMessage.Enabled = true;
        }

        private void stuMsg_DoubleClick(object sender, EventArgs e)
        {
            string URL;
            URL = "http://message.csdn.net/ListMessage.aspx?type=newMessage";
            System.Diagnostics.Process.Start(URL);
        }

        private void mnuTool_Setting_Click(object sender, EventArgs e)
        {
            frmSettings frm = new frmSettings();
            frm.ShowDialog();
        }

        private void mnuAbout_Blog_Click(object sender, EventArgs e)
        {
            string URL;
            URL = "http://feiyun0112.cnblogs.com";
            System.Diagnostics.Process.Start(URL);
        }

        private void mnuAbout_CsdnReader_Click(object sender, EventArgs e)
        {
            frmAbout frm = new frmAbout();
            frm.ShowDialog();
        }

        private void timerHideInfo_Tick(object sender, EventArgs e)
        {
            timerHideInfo.Enabled = false;
            timerHideInfo.Interval = Setting.HideInfoInterval;
            
            stuInfo.Text = "";

            timerHideInfo.Enabled = true;
        }

        private void mnuAbout_Email_Click(object sender, EventArgs e)
        {
            string URL;
            URL = "mailto:feiyun0112@gmail.com?subject=CSDN Reader";
            System.Diagnostics.Process.Start(URL);
        }

        private void mnuAbout_Help_Click(object sender, EventArgs e)
        {
            string URL;
            URL = "http://www.cnblogs.com/feiyun0112/archive/2006/11/17/563759.html";
            System.Diagnostics.Process.Start(URL);
        }

        private void mnuAbout_Download_Click(object sender, EventArgs e)
        {
            string URL;
            URL = "http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html";
            System.Diagnostics.Process.Start(URL);
        }

        

        
        
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -