public HexEditor(ByteCollection collection) { //Set String format for the hex values _stringFormat = new StringFormat(StringFormat.GenericTypographic); _stringFormat.Alignment = StringAlignment.Center; _stringFormat.LineAlignment = StringAlignment.Center; //Set the provided byte collection _hexTable = collection; //Set the vertical scrollbar _vScrollBar = new VScrollBar(); _vScrollBar.Scroll += new ScrollEventHandler(OnVScrollBarScroll); //Redraw whenever the control is resized SetStyle(ControlStyles.ResizeRedraw, true); //Enable double buffering SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true); //Enable selectable SetStyle(ControlStyles.Selectable, true); //Handle initialization of Caret _caret = new Caret(this); _caret.SelectionStartChanged += new EventHandler(CaretSelectionStartChanged); _caret.SelectionLengthChanged += new EventHandler(CaretSelectionLengthChanged); //Create the needed edit view _editView = new EditView(this); _handler = _editView; //Set defualt cursor this.Cursor = Cursors.IBeam; }