Be.Windows.Forms.HexBox.GetStringBytePositionInfo C# (CSharp) Method

GetStringBytePositionInfo() private method

private GetStringBytePositionInfo ( Point p ) : BytePositionInfo
p Point
return BytePositionInfo
        BytePositionInfo GetStringBytePositionInfo(Point p)
        {
            //System.Diagnostics.Debug.WriteLine("GetStringBytePositionInfo()", "HexBox");

            long bytePos;
            int byteCharacterPos;

            float x = (p.X - _recStringView.X) / _charSize.Width;
            float y = (p.Y - _recStringView.Y) / _charSize.Height;
            int iX = (int)x;
            int iY = (int)y;

            int hPos = iX + 1;

            bytePos = Math.Min(_byteProvider.Length,
                _startByte + (_iHexMaxHBytes * (iY + 1) - _iHexMaxHBytes) + hPos - 1);
            byteCharacterPos = 0;

            if (bytePos < 0)
                return new BytePositionInfo(0, 0);
            return new BytePositionInfo(bytePos, byteCharacterPos);
        }
        #endregion
HexBox