protected override void OnPaint(PaintEventArgs e)
        {
            using (var LCK = Gdi.LockGraphics(e.Graphics))
            {
                Gdi.StartOffScreenBitmap(Width, Height);

                // White Background
                Gdi.SetBrush(Color.White);
                Gdi.SetSolidPen(Color.White);
                Gdi.FillRectangle(0, 0, Width, Height);

                // Lag frame calculations
                SetLagFramesArray();

                var visibleColumns = _columns.VisibleColumns.ToList();

                if (visibleColumns.Any())
                {
                    DrawColumnBg(e, visibleColumns);
                    DrawColumnText(e, visibleColumns);
                }

                //Background
                DrawBg(e, visibleColumns);

                //Foreground
                DrawData(e, visibleColumns);

                DrawColumnDrag(e);
                DrawCellDrag(e);

                Gdi.CopyToScreen();
                Gdi.EndOffScreenBitmap();
            }
        }