📄 main.cs
字号:
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 + -