System.Windows.Forms.HexBox.KeyInterpreter.PreProcessWmKeyDown_Back C# (CSharp) Method

PreProcessWmKeyDown_Back() protected method

protected PreProcessWmKeyDown_Back ( Message &m ) : bool
m Message
return bool
            protected virtual bool PreProcessWmKeyDown_Back(ref Message m)
            {
                if(!_hexBox._byteProvider.SupportsDeleteBytes())
                    return true;

                long pos = _hexBox._bytePos;
                long sel = _hexBox._selectionLength;
                int cp = _hexBox._byteCharacterPos;

                long startDelete = (cp == 0 && sel == 0) ? pos-1 : pos;
                if(startDelete < 0 && sel < 1)
                    return true;

                long bytesToDelete = (sel > 0) ? sel : 1;
                _hexBox._byteProvider.DeleteBytes(Math.Max(0, startDelete), bytesToDelete);
                _hexBox.UpdateScrollSize();

                if(sel == 0)
                    PerformPosMoveLeftByte();

                _hexBox.ReleaseSelection();
                _hexBox.Invalidate();

                return true;
            }