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

📄 main.cs

📁 可以收藏RSS和ATOM格式新闻频道,还可以收藏常用的html格式的网址;可以在新闻快客的地址栏直接输入任何网址浏览网页官方网址:http://t811.uu1001.com
💻 CS
📖 第 1 页 / 共 3 页
字号:
                            sub.Text = obj.Title;

                            if (obj.Feedtype == "html")
                            {
                                sub.Tag = obj.Url;
                                sub.ContextMenuStrip = this.contextMenuStrip2;
                            }
                            else
                            {
                                sub.Tag = obj.Feedtype;
                                sub.ContextMenuStrip = this.contextMenuStrip1;
                            }
                            node.ToolTipText = obj.Description;
                            node.Nodes.Add(sub);
                        }
                        //}
                        node.ImageIndex = 1;
                        break;

                    }
                    //catch (Exception ex)
                    {
                        //   Console.Write(ex.ToString());
                        //   return;
                    }
                }
            }
            catch (Exception)
            {
                return;
            }

        }
        /// <summary>
        /// 新建页面窗口
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void newTStMI_Click(object sender, EventArgs e)
        {
            newWebBrowser("","");
        }

        /// <summary>
        /// 实现新建窗口方法
        /// </summary>
        /// <param name="TTitle"></param>
        /// <param name="url"></param>
        private void newWebBrowser(string title, string url)
        {
            try
            {
                if (string.IsNullOrEmpty(url)) url = "about:blank";
                if (string.IsNullOrEmpty(title)) title = "NewPage";
                if (!url.Equals("about:blank"))
                    if (!url.StartsWith("http://") && !url.StartsWith("https://") && !url.StartsWith("ftp://"))
                    {
                        url = "http://" + url;
                    }

                if (!tctlWebBorowser.Visible)
                    tctlWebBorowser.Visible=true;
                WebBrowser webBrowser = new WebBrowser();
                TabPage newTabpage = new TabPage();

                webBrowser.Dock = DockStyle.Fill;
                newTabpage.ImageIndex = 0;
                webBrowser.Parent = newTabpage;
                webBrowser.Navigated += new WebBrowserNavigatedEventHandler(webBrowser_Navigated);
                webBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(onloadover_DocumentCompleted);//网页加载完毕后的事件执行方法
                webBrowser.StatusTextChanged += new EventHandler(webBrowser_StatusTextChanged);
                webBrowser.AllowNavigation = true;
                webBrowser.NewWindow += new CancelEventHandler(webBrowser_NewWindow);
                webBrowser.ScriptErrorsSuppressed=tsmiScriptTest.Checked;
                try
                {
                    webBrowser.Url = new Uri(url);
                    if (url.Equals("about:blank") && title.Equals("NewPage"))//默认空白页
                    {
                        newTabpage.Text = title;
                        webBrowser.Navigate(url);
                        this.Text = "新闻快客" + (isUntitled ? "*" : "") + webBrowser.DocumentTitle;
                    }
                    else
                    {
                        
                        webBrowser.Navigate(new Uri(url), false);
                        if (title.Equals("NewPage") && !url.Equals("about:blank"))//如果标题为空,网址不为空,则为地址栏的地址
                        {
                            newTabpage.Text = webBrowser.DocumentTitle;
                            //tstbUrl.Text = webBrowser.Url.ToString();
                        }
                        else
                        {
                            newTabpage.Text = title;
                        }
                        this.Text = "新闻快客" + (isUntitled ? "*" : "") + webBrowser.DocumentTitle;
                        
                    }
                }
                catch (Exception)
                {
                    webBrowser.GoSearch();
                    return;
                }
                //this.Text = "新闻快客" + (isUntitled ? "*" : "") + title;
                tctlWebBorowser.TabPages.Add(newTabpage);
                tstbUrl.Text = url;
                newTabpage.Show();
                childFormNumber++;//窗口数量加1
            }
            catch (Exception)
            {
                MessageBox.Show("此URL无效,无法载入!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
        }

        /// <summary>
        /// 设置状态栏信息
        /// </summary>
        private void webBrowser_StatusTextChanged(object sender, EventArgs e)
        {
            try{
                toolStripStatusLabel.Text = ((WebBrowser)sender).StatusText.ToString();
            }
            catch (Exception)
            {
                return;
            }
        }

        /// <summary>
        /// 文档加载完毕后的事件执行方法,
        /// 将获取文档的标题显示在上级或主窗体的标题上
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void onloadover_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            try
            {
                WebBrowser webobj = (WebBrowser)sender;
                //if (webobj.Parent.Text != webobj.DocumentTitle)
                ((TabPage)webobj.Parent).Text = webobj.DocumentTitle;
                this.Text = "新闻快客" + (isUntitled ? "*" : "") + webobj.DocumentTitle;
            }
            catch (System.UriFormatException)
            {
                return;
            }
        }

        /// <summary>
        /// 实现显示在treeview上
        /// </summary>
        public void ViewTreeView(TreeView treeview)
        {
            try
            {
                if (frmMainwindow.isUntitled)
                    this.Text = "新闻快客*";
                else
                    this.Text = "新闻快客";

                treeview.Nodes.Clear();

                foreach (FeedBase feed in frmMainwindow.feeds.Values)
                {
                    TreeNode node = new TreeNode();
                    node.Text = feed.DisplayName;

                    if (feed.Feedtype == "html")
                    {
                        node.ImageIndex = 16;
                        node.Tag = feed;
                        node.ContextMenuStrip = this.contextMenuStrip2;
                    }
                    else
                    {
                        node.ImageIndex = 6;
                        node.Tag = feed.Feedtype;
                        node.ContextMenuStrip = this.contextMenuStrip1;
                    }
                    node.ToolTipText = feed.Description;
                    treeview.Nodes.Add(node);
                }
            }
            catch (Exception)
            {
                return;
            }
        }

        private void editTSMI_Click(object sender, EventArgs e)
        {
            try
            {
                foreach (TreeView treeview in tctlList.SelectedTab.Controls)
                {
                    try
                    {
                        TreeNode node = treeview.SelectedNode;//选择的节点
                        TreeNode pnode = node.Parent;//选择的子节点的父节点

                        string pkey;
                        string key = node.Text.Trim();//子节点的名称
                        if (node.Tag.ToString() == "html" || pnode == null)
                        {
                            channel editChannel = new channel(ReaderView.Modiy, key);
                            DialogResult result = editChannel.ShowDialog();
                            /*if (result != DialogResult.Cancel)
                            {
                                ViewTreeView(treeview);
                            }*/
                        }
                        else
                        {
                            pkey = pnode.Text.Trim();
                            channel editChannel = new channel(ReaderView.Modiy, pkey, key);
                            DialogResult result = editChannel.ShowDialog();
                            /*if (result != DialogResult.Cancel)
                            {
                                ViewTreeView(treeview);
                            }*/
                        }
                        ViewTreeView(treeview);
                        return;
                    }
                    catch (Exception ex)
                    {
                        Console.Write(ex.ToString());
                        return;
                    }
                }
            }
            catch (Exception)
            {
                return;
            }
        }

        private void treeView1_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e)
        {
            try
            {
                foreach (TreeView treeview in tctlList.SelectedTab.Controls)
                {
                    try
                    {
                        TreeNode node = treeview.SelectedNode;//选择的节点
                        //if (node == null) break;
                        node.ImageIndex = 0;

                        if (node.Tag.ToString() == "rss" /*|| node.Tag.ToString() == "feed"*/)//如果父节点为空,则为展开子节点
                        {
                            stmiOpen_Click(sender, e);
                        }
                        else //则为子节点,打开网页
                        {
                            tsmiBWeb_Click(sender, e);
                        }
                        return;
                    }
                    catch (Exception)
                    {
                        return;
                    }
                }
            }
            catch (Exception)
            {
                return;
            }
        }

        /// <summary>
        /// 关闭当前选中的Tab页
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void CloseTSMI_Click(object sender, EventArgs e)
        {
            try
            {
                WebBrowser curWebb = getCurPage();
                curWebb.Stop();
                curWebb.Dispose();
                GC.Collect();
                tctlWebBorowser.TabPages.Remove(tctlWebBorowser.SelectedTab);
                childFormNumber--;
                if (tctlWebBorowser.TabPages.Count == 0) tctlWebBorowser.Visible = false;
            }
            catch (Exception)
            {
                return;
            }
        }

        /// <summary>
        /// 查看书签信息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tsbViewFeedInfo_Click(object sender, EventArgs e)
        {
            try
            {
                foreach (TreeView treeview in tctlList.SelectedTab.Controls)
                {
                    try
                    {
                        TreeNode node = treeview.SelectedNode;//选择的节点
                        TreeNode pnode = node.Parent;//选择的子节点的父节点

                        string pkey;
                        string key = node.Text.Trim();//子节点的名称
                        if (node.Tag.ToString() == "html" || pnode == null)
                        {
                            channel viewChannel = new channel(ReaderView.View, key);
                            viewChannel.Show();
                        }
                        else
                        {
                            pkey = pnode.Text.Trim();
                            channel viewChannel = new channel(ReaderView.View, pkey, key);
                            viewChannel.Show();
                        }
                    }
                    catch (Exception ex)
                    { Console.Write(ex.ToString()); return; }
                }
            }
            catch (Exception)
            {
                return;
            }
        }

        /// <summary>
        /// 关闭当前选中的其它页面
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tsmiCloseCasePage_Click(object sender, EventArgs e)
        {
            try
            {
                foreach (TabPage tabpage in tctlWebBorowser.TabPages)
                {
                    if (tabpage != tctlWebBorowser.SelectedTab) tctlWebBorowser.TabPages.Remove(tabpage);
                    childFormNumber--;
                }
                if (tctlWebBorowser.TabPages.Count == 0) tctlWebBorowser.Visible = false;
            }
            catch (Exception)
            {
                return;
            }
        }

        private void tsmiOption_Click(object sender, EventArgs e)
        {
            Configure configure = new Configure();
            configure.Show();
        }
        /// <summary>
        /// 删除书签
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tsbDelFeed_Click(object sender, EventArgs e)
        {
            try
            {
                foreach (TreeView treeview in tctlList.SelectedTab.Controls)
                {
                    TreeNode node = treeview.SelectedNode;//选择的节点

⌨️ 快捷键说明

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