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 шт):
Решил с помощью дополнительной глобальной переменной
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--;
}

