protected override void OnPaint(PaintEventArgs e)
{
Graphics g = e.Graphics;
// Caption
Data.GradientPaint(g, rectfCaption, colorCaptionBack, LayoutColors.DepthCaption);
g.DrawString(caption, fontCaption, brushCaption, rectfCaption, stringFormatCaption);
float y = captionHeight;
for (int i = 0; i * rowHeight + captionHeight < height; i++)
{
float fVerticalPosition = i * rowHeight + captionHeight;
PointF pointFParam = new PointF(paramTab + 2, fVerticalPosition);
PointF pointFValue = new PointF(valueTab + 2, fVerticalPosition);
RectangleF rectRow = new RectangleF(border, fVerticalPosition, width, rowHeight);
// Row background
if (i + vScrollBar.Value < rows && abFlag[i + vScrollBar.Value])
g.FillRectangle(new SolidBrush(colorBackroundWarningRow), rectRow);
else if (i % 2f != 0)
g.FillRectangle(new SolidBrush(colorBackroundEvenRows), rectRow);
else
g.FillRectangle(new SolidBrush(colorBackroundOddRows), rectRow);
if (i + vScrollBar.Value >= rows)
continue;
if (i + vScrollBar.Value < rows && abFlag[i + vScrollBar.Value])
{
Brush brush = new SolidBrush(colorTextWarningRow);
Pen pen = new Pen(colorTextWarningRow);
g.DrawString(asParam[i + vScrollBar.Value], fontData, brush, pointFParam, stringFormatData);
g.DrawString(asValue[i + vScrollBar.Value], fontData, brush, pointFValue, stringFormatData);
}
else
{
g.DrawString(asParam[i + vScrollBar.Value], fontData, brushParams, pointFParam, stringFormatData);
g.DrawString(asValue[i + vScrollBar.Value], fontData, brushData, pointFValue, stringFormatData);
}
}
// Border
g.DrawLine(penBorder, 1, captionHeight, 1, ClientSize.Height);
g.DrawLine(penBorder, ClientSize.Width - border + 1, captionHeight, ClientSize.Width - border + 1, ClientSize.Height);
g.DrawLine(penBorder, 0, ClientSize.Height - border + 1, ClientSize.Width, ClientSize.Height - border + 1);
return;
}