フォームクラス
ファイル名:Form1.cs
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO; using System.Collections; using ABCS.Classes; using Microsoft.VisualBasic; using System.Text.RegularExpressions; namespace ABCS { public partial class frmMain : Form { public frmMain() { InitializeComponent(); } private String boomarkDir_ = null; private MyFiles myFiles_ = null; private TreeView trace_ = null; private TreeView recent_ = null; private string ez = "Provider=MSDAORA; User ID=ABCS; password=ABCS; Data Source=lsl.atnifty.com:1521/bbc"; private string xmlurl = Application.StartupPath + "\\" + "urls.xml"; private DataSet dataSet_ = null; private MySnapWebBrowser Snapped2UPweb = null; private void Form1_Load(object sender, EventArgs e) { #region #endregion //Tab 初期化 { if (!String.IsNullOrEmpty(Environment.GetEnvironmentVariable("ABCS_SITE"))) { string site = Environment.GetEnvironmentVariable("ABCS_SITE").ToString(); this.ez = "Provider=MSDAORA; User ID=ABCS; password=ABCS; Data Source=" + site + ":1521/bbc"; } this.WindowState = FormWindowState.Maximized; //MyAnisTabControl初期化 this.tabControl.TabPages.Clear(); this.tabView.TabPages.Clear(); //ウインドウサイズ int xsize = this.Size.Width; int ysize = this.Size.Height; int ybias = 64; /* * //古い //myTabPageAdmin { myTabPageAdmin = new MyTabPageAdmin(this.tabControl); } */ /* * //AnisTabControl, MyAnisTabControlに移行し、不要になった。 //MouseEventHandler { this.tabControl.MouseDoubleClick += new MouseEventHandler(this.tabControl_DoubleClick); } */ //SlidingButton ※ReiszeWebTabUrlTab()の前であること。 { this.slidingButton4Half.Top = ysize - ybias + 2; this.slidingButton4Half.Left = xsize * 50 / 100; this.slidingButton4Half.resizeHook = new OnResizeHook4Form(this.ResizeWebTabUrlTab); } //ウインドウサイズに合わせて、WebTabとUrlTabをリサイズ this.ResizeWebTabUrlTab(); //AnisTabControl ドラッグ&ドロップ { this.tabControl.SortTabDragDrop = true; this.tabControl.AllowDrop = true; } //Favarate { TabPage tab = new TabPage(); this.treeFaverate.Dock = DockStyle.Fill; tab.Controls.Add(this.treeFaverate); tab.Text = "お気に入り"; this.tabView.TabPages.Add(tab); } //2UP { TabPage tab = new TabPage(); MySnapWebBrowser web = new MySnapWebBrowser(this.tabControl, this); web.Dock = DockStyle.Fill; tab.Controls.Add(web); tab.Text = "スナップWeb"; this.tabView.TabPages.Add(tab); this.Snapped2UPweb = web; //web.OnNewWindowSnap += this.SnapNewWindow; } //Trace { this.trace_ = new TreeView(); TabPage tab = new TabPage(); this.trace_.Dock = DockStyle.Fill; tab.Controls.Add(this.trace_); tab.Text = "トレース"; this.tabView.TabPages.Add(tab); } //Recent { this.recent_ = new TreeView(); TabPage tab = new TabPage(); this.recent_.Dock = DockStyle.Fill; tab.Controls.Add(this.recent_); tab.Text = "履歴"; this.tabView.TabPages.Add(tab); } } //お気に入りツリー 初期化 { TreeNodeCollection nodes = this.treeFaverate.Nodes; this.boomarkDir_ = Environment.GetFolderPath(Environment.SpecialFolder.Favorites); this.myFiles_ = new MyFiles(this.boomarkDir_); this.treeFaverate.Nodes.Add(this.myFiles_.CreateNode()); } //履歴ツリー 初期化 { TreeNodeCollection nodes = this.recent_.Nodes; string recentDir = Environment.GetFolderPath(Environment.SpecialFolder.History); MyFiles files = new MyFiles(recentDir); this.recent_.Nodes.Add(files.CreateNode()); } } #region oldbutton /* private void btnNewTab_Click(object sender, EventArgs e) { TabPage tab = new TabPage(); WebBrowser web = new WebBrowser(); web.Dock = DockStyle.Fill; tab.Controls.Add(web); this.tabControl.Controls.Add(tab); this.tabControl.SelectTab(tab); } */ #endregion private string getFavarateOffset(string bookmarkDir) { Regex reg = new Regex("[\\\\][^\\\\]*$"); return reg.Replace(bookmarkDir, ""); } private void treeFaverate_AfterSelect(object sender, TreeViewEventArgs e) { TreeNode node = e.Node; String nodefile = this.getFavarateOffset(this.boomarkDir_) + "\\" + node.FullPath; //MessageBox.Show(nodefile); openPage(nodefile); } private void openPage(string path) { if (File.Exists(path)) { StreamReader reader = new StreamReader(path, Encoding.Default); while (!reader.EndOfStream) { string line = reader.ReadLine(); if (line.IndexOf("URL=") == 0) { string url = line.Replace("URL=", ""); openNewTab(url); break; } } } } private void openNewTab(string url) { MyTabPageWithWeb tab = new MyTabPageWithWeb(this, this.tabControl,url); tab.AllowDrop = true; //ContextMenuStrip topmenu = new ContextMenuStrip(); //ContextMenuStrip menu = web.ContextMenuStrip; //web.ContextMenuStrip = topmenu; this.trace_.Nodes.Add(new TreeNode(url)); this.tabControl.Controls.Add(tab); this.tabControl.SelectTab(tab); //タブ・子タブ・子Webへのポインタ管理 //this.myTabPageAdmin.Add(tab, web, ctabctrl); //tab.DoubleClick += this.tabPageDoubleClick; //いらない } private void aaaToolStripMenuItem_Click(object sender, EventArgs e) { } private void frmMain_Resize(object sender, EventArgs e) { ResizeWebTabUrlTab(); } protected override void OnResize(EventArgs e) { base.OnResize(e); this.slidingButton4Half.Left = this.Width / 2; } private void ResizeWebTabUrlTab() { //ウインドウサイズ int xsize = this.Size.Width; int ysize = this.Size.Height; int ybias = 0; int topPanelY = this.pnlTopPanel.Height; if (this.WindowState == FormWindowState.Maximized) { ybias = 64; } else { ybias = 64; } int pct = this.slidingButton4Half.avgX * 100 / xsize; //TabWeb { int pnlXsize = xsize * (100 - pct) / 100; int pnlYsize = ysize - ybias - topPanelY; this.pnlPanelForTab.Size = new Size(pnlXsize, pnlYsize); this.pnlPanelForTab.Top = topPanelY; this.pnlPanelForTab.Left = xsize - pnlXsize; this.tabControl.AllowDrop = true; this.tabControl.SortTabDragDrop = true; //this.tabControl.Refresh(); //this.pnlPanelForTab.Refresh(); } int tabViewHeight = ysize * 90 / 100 - ybias - topPanelY; int tabViewWidth = xsize * pct / 100; //pnlButtons { this.pnlButtons.Size = new Size(xsize * pct / 100, ysize - tabViewHeight - ybias - topPanelY); this.pnlButtons.Top = topPanelY; this.pnlButtons.Left = 0; } //TabView { this.tabView.Size = new Size(tabViewWidth, tabViewHeight); this.tabView.Top = this.pnlButtons.Top + this.pnlButtons.Height; this.tabView.Left = 0; //this.tabView.Controls.Clear(); //this.tabView.Refresh(); } //sliderButton { this.slidingButton4Half.Top = ysize - ybias + 2; } } private void btnBackWeb_Click(object sender, EventArgs e) { MyTabPageWithWeb tab = this.tabControl.SelectedTab as MyTabPageWithWeb; if (tab != null) { tab.ChildWebBrowser.GoBack(); } } private void btnForwardWeb_Click(object sender, EventArgs e) { MyTabPageWithWeb tab = this.tabControl.SelectedTab as MyTabPageWithWeb; if (tab != null) { tab.ChildWebBrowser.GoForward(); } } private void btnSnap_Click(object sender, EventArgs e) { MyTabPageWithWeb tab = this.tabControl.SelectedTab as MyTabPageWithWeb; WebBrowser fromweb = tab.ChildWebBrowser; MySnapWebBrowser toweb = this.Snapped2UPweb; if (tab != null) { toweb.isSnap = true; toweb.Navigate(fromweb.Url); foreach (TabPage ctab in this.tabView.TabPages) { if (ctab.Text == "スナップWeb") { this.tabView.SelectTab(ctab); return; } } } } private void frmMain_SizeChanged(object sender, EventArgs e) { this.ResizeWebTabUrlTab(); } } }