void PaintLineInfo(Graphics g, long startByte, long endByte)
{
// Ensure endByte isn't > length of array.
endByte = Math.Min(_byteProvider.Length - 1, endByte);
Color lineInfoColor = (this.LineInfoForeColor != Color.Empty) ? this.LineInfoForeColor : this.ForeColor;
Brush brush = new SolidBrush(lineInfoColor);
int maxLine = GetGridBytePoint(endByte - startByte).Y + 1;
for (int i = 0; i < maxLine; i++)
{
long firstLineByte = (startByte + (_iHexMaxHBytes) * i) + _lineInfoOffset;
PointF bytePointF = GetBytePointF(new Point(0, 0 + i));
string info = firstLineByte.ToString(_hexStringFormat, System.Threading.Thread.CurrentThread.CurrentCulture);
int nulls = 8 - info.Length;
string formattedInfo;
if (nulls > -1)
{
formattedInfo = new string('0', 8 - info.Length) + info;
}
else
{
formattedInfo = new string('~', 8);
}
g.DrawString(formattedInfo, Font, brush, new PointF(_recLineInfo.X, bytePointF.Y), _stringFormat);
}
}