trackbar add remove "button"

Есть функция для создания кнопки

public button addButton(string nameBtn, Image img)
        {
            button btn = new button();
            btn.Name = nameBtn;
            btn.BackgroundImageLayout = ImageLayout.Center;
            btn.BackgroundImage = img;
            btn.Height = 55;
            btn.Width = 55;
            btn.AllowDrop = true;
            return btn;
        }

Я её использую для создания\удаления кнопок на панели - FlowLayoutPanel, следующим образом:

panelControl.Controls.Add(addButton("NameButton", IMAGE);
panelControl.Controls.Remove(panelControl.Controls[index]);

Где индекс - int index = panelControl.Controls.Count - 1; т.е. каждый раз удаляю последнюю кнопку на панели(вроде очень удобно).

Мозг выдумал идею - использовать для создания кнопок trackBar по событию - Scroll, но вот незадача, каким образом это осуществить? Массив не подходит. List<Button> - тоже не подходит(для меня). Если без них никак я перекрою программу(ок), но мб просто глаза замылились и есть более простое решение?

UDP: Сохранять каждый раз положение TrackBar'a? И от него плясать если увеличивается то .add иначе .remove?

введите сюда описание изображения


Ответы (1 шт):

Автор решения: tomato-magnet-regulato

Решил с помощью дополнительной глобальной переменной

private int NumberOfButton = 0;

В методе загрузки формы получаю изначальное кол-во кнопок на панели

Form1 main = Owner as Form1;
NumberOfButton = main.numberBtn;

При использовании Scroll'a получилось примерно следующее:

            int index = trackBar1.Value;
        
            if(trackBar1.Value > NumberOfButton)
            {
                //... Add Button
                NumberOfButton++;
            }
            else
            {               
                //... Delete Button
                NumberOfButton--;                 
            }

введите сюда описание изображения

→ Ссылка