private void SkillDisplay_Paint(object sender, PaintEventArgs e)
        {
            e.Graphics.Clear(BackColor);

            // Calculate starting position.
            int firstRow = __ScrollBar.Value; // 0 to something...

            int x = 0;
            int y = 3; // We won't be drawing any rows hidden off the top, but we will draw rows hidden off the bottom incase one of them is partial.

            for (int i = firstRow * _IconsPerRow; i < Skills.Count; ++i)
            {
                Skills.SkillAt(i).Draw(e.Graphics, 3 + x * (IconSize + 3), y, Skills.QuantityAt(i));
                // Advance a slot. If necessary, go to a new row.
                ++x;
                if (x >= _IconsPerRow)
                {
                    x  = 0;
                    y += IconSize + 3;
                }
            }
        }