private void CreateControlsForConfiguration()
        {
            int groupBoxWidth    = CreateControlClass.GetMainFormWidth(_mainForm, _marginHeight);
            int horizontalAmount = CreateControlClass.GetHorizontalAmount(groupBoxWidth, _pictureBoxWidth + _marginWidth);
            int verticalAmount   = 0;

            var groupedHeroRoleList = _heroes.GroupBy(u => u.Role).Select(grp => grp.ToList()).ToList();

            Control newControl = new Control()
            {
                Location = new Point(0, 0),
                Size     = new Size(5, 5)
            };

            Control heroesGroupBox = newControl;

            foreach (var groupRole in groupedHeroRoleList)
            {
                verticalAmount = (int)Math.Ceiling((double)groupRole.Count / (double)horizontalAmount);
                Hero hero = groupRole[0];
                heroesGroupBox           = CreateGroupBoxControl(heroesGroupBox, _mainForm, hero.Role.ToString(), $"Wybór bohaterów dla: {hero.Role.ToString()}", verticalAmount);
                heroesGroupBox.ForeColor = CreateControlClass.GetColorForRole(hero.Role);
                _mainForm.Controls.Add(heroesGroupBox);
                CreateHeroControl(heroesGroupBox, horizontalAmount, groupRole, true);
            }
        }
        private Control CreateGroupBoxControl(Control lastControl, Control mainForm, string name, string text, int amountVertical)
        {
            GroupBox groupBox = new GroupBox();

            groupBox.Name     = name;
            groupBox.Text     = text;
            groupBox.Location = new Point(lastControl.Location.X, lastControl.Location.Y + lastControl.Height + _marginHeight);
            groupBox.Size     = new Size(CreateControlClass.GetMainFormWidth(mainForm, _marginHeight), amountVertical * (_marginHeight + _pictureBoxHeight));
            groupBox.Tag      = _groupBoxToDelete;

            return(groupBox);
        }
        private void CreateControls()
        {
            int groupBoxWidth    = CreateControlClass.GetMainFormWidth(_mainForm, _marginHeight);
            int horizontalAmount = CreateControlClass.GetHorizontalAmount(groupBoxWidth, _pictureBoxWidth + _marginWidth);
            int verticalAmount   = (int)Math.Ceiling((double)_maps.Count / (double)horizontalAmount);

            Control mapsGroupBox = CreateGroupBoxControl(_lastGroupBox, _mainForm, _groupBoxMapsName, "Wybór mapy", verticalAmount);

            _mainForm.Controls.Add(mapsGroupBox);
            CreateMapControl(mapsGroupBox, horizontalAmount);

            var     groupedHeroRoleList = _heroes.GroupBy(u => u.Role).Select(grp => grp.ToList()).ToList();
            Control heroesGroupBox      = mapsGroupBox;

            foreach (var groupRole in groupedHeroRoleList)
            {
                verticalAmount = (int)Math.Ceiling((double)groupRole.Count / (double)horizontalAmount);
                Hero hero = groupRole[0];
                heroesGroupBox           = CreateGroupBoxControl(heroesGroupBox, _mainForm, hero.Role.ToString(), $"Wybór bohaterów dla: {hero.Role.ToString()}", verticalAmount);
                heroesGroupBox.ForeColor = CreateControlClass.GetColorForRole(hero.Role);
                _mainForm.Controls.Add(heroesGroupBox);
                CreateHeroControl(heroesGroupBox, horizontalAmount, groupRole, false);
            }
        }