void OnGridCellEnter(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex < 0 || e.ColumnIndex > 15)
return;
int offset = e.ColumnIndex + e.RowIndex * 16;
DataOffset.Text = Format(offset + SourceDisplayOffset) + " of " + Format(SourceDisplayOffset + SourceCount);
offset += SourceStart;
int end = SourceStart + SourceCount;
IList<byte> data = SourceData;
DataByte.Text = Format(data.ReadByte(offset, end));
DataSByte.Text = Format(data.ReadSByte(offset, end));
DataInt16.Text = Format(data.ReadInt16(offset, end));
DataInt16BE.Text = Format(data.ReadInt16BE(offset, end));
DataUInt16.Text = Format(data.ReadUInt16(offset, end));
DataUInt16BE.Text = Format(data.ReadUInt16BE(offset, end));
DataInt32.Text = Format(data.ReadInt32(offset, end));
DataInt32BE.Text = Format(data.ReadInt32BE(offset, end));
DataUInt32.Text = Format(data.ReadUInt32(offset, end));
DataUInt32BE.Text = Format(data.ReadUInt32BE(offset, end));
DataInt64.Text = Format(data.ReadInt64(offset, end));
DataInt64BE.Text = Format(data.ReadInt64BE(offset, end));
DataUInt64.Text = Format(data.ReadUInt64(offset, end));
DataUInt64BE.Text = Format(data.ReadUInt64BE(offset, end));
DataSingle.Text = data.ReadSingle(offset, end).ToString();
DataSingleBE.Text = data.ReadSingleBE(offset, end).ToString();
DataDouble.Text = data.ReadDouble(offset, end).ToString();
DataDoubleBE.Text = data.ReadDoubleBE(offset, end).ToString();
}