void CalculateScrollBarStatus()
{
width = ClientSize.Width - 2 * border;
height = ClientSize.Height - border;
bool needHorisontal = width < maxParamWidth + paddingParamData + maxValueWidth - 2;
bool needVertical = height < requiredHeight;
bool isHorisontal = needHorisontal;
bool isVertical = needVertical;
if (needHorisontal && needVertical)
{
isVertical = true;
isHorisontal = true;
}
else if (needHorisontal && !needVertical)
{
isHorisontal = true;
height = ClientSize.Height - hScrollBar.Height - border;
isVertical = height < requiredHeight;
}
else if (!needHorisontal && needVertical)
{
isVertical = true;
width = ClientSize.Width - vScrollBar.Width - 2 * border;
isHorisontal = width < maxParamWidth + paddingParamData + maxValueWidth - 2;
}
else
{
isHorisontal = false;
isVertical = false;
}
if (isHorisontal)
height = ClientSize.Height - hScrollBar.Height - border;
if (isVertical)
width = ClientSize.Width - vScrollBar.Width - 2 * border;
vScrollBar.Enabled = isVertical;
vScrollBar.Visible = isVertical;
hScrollBar.Enabled = isHorisontal;
hScrollBar.Visible = isHorisontal;
hScrollBar.Value = 0;
if (isHorisontal)
{
int iPoinShort = (int)(maxParamWidth + paddingParamData + maxValueWidth - width);
hScrollBar.Maximum = iPoinShort + hScrollBar.LargeChange - 2;
}
rectfCaption = new RectangleF(0, 0, ClientSize.Width, captionHeight);
visibleRows = (int)Math.Min(((height - captionHeight) / rowHeight), rows);
vScrollBar.Value = 0;
vScrollBar.Maximum = rows - visibleRows + vScrollBar.LargeChange - 1;
return;
}