/// <summary> /// Closes the tab page at the given index /// </summary> /// <param name="index"></param> void Core_CloseTabPage(int index) { Tabs_Control.TabPages.Remove(FileTabPages[index]); Tabs_Control.Controls.Remove(FileTabPages[index]); Tabs_Control.Invalidate(); FileHexBoxes[index].Dispose(); FileTabPages[index].Dispose(); FileHexBoxes.RemoveAt(index); FileTabPages.RemoveAt(index); FilePaths.RemoveAt(index); }
/// <summary> /// Creates a new TabPage for the given file /// </summary> void Core_CreateTabPage(FileByteProvider file, string fileName) { TabPage tabpage = new TabPage(); tabpage.Name = "FileTabPage" + FileTabPages.Count; tabpage.Text = fileName; tabpage.Padding = new Padding(3); tabpage.Size = MainTabPage.Size; HexBox hexbox = new HexBox(); hexbox.ByteProvider = file; hexbox.Name = "MainHexBox"; hexbox.LineInfoVisible = true; hexbox.ColumnInfoVisible = true; hexbox.StringViewVisible = true; hexbox.VScrollBarVisible = true; hexbox.UseFixedBytesPerLine = true; hexbox.Location = new Point(-2, 0); hexbox.Size = MainHexBox.Size; hexbox.Anchor = (AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right); hexbox.BorderStyle = BorderStyle.None; hexbox.TabIndex = 0; hexbox.SelectionStartChanged += new System.EventHandler(this.HexBox_SelectionStartChanged); hexbox.SelectionLengthChanged += new System.EventHandler(this.HexBox_SelectionLengthChanged); hexbox.CurrentLineChanged += new System.EventHandler(this.HexBox_Position_Changed); hexbox.CurrentPositionInLineChanged += new EventHandler(this.HexBox_Position_Changed); hexbox.Copied += new System.EventHandler(this.HexBox_Copy); hexbox.CopiedHex += new System.EventHandler(this.HexBox_CopyHex); tabpage.Controls.Add(hexbox); FilePaths.Add(fileName); FileTabPages.Add(tabpage); FileHexBoxes.Add(hexbox); Tabs_Control.Controls.Add(tabpage); Tabs_Control.SelectTab(Tabs_Control.TabCount - 1); hexbox.Focus(); }