Привет, у меня есть приложение Forms, которое использует пользовательский элемент управления на основе трек-бара под названием colorSlider.Этот элемент управления был получен из кода проекта и добавлен в инструменты в VS2017.Все аспекты контроля работают нормально.Я могу изменить любые свойства, как я хочу.Тем не менее, окончательный проект довольно большой, и все панели треков (около 50) будут заменены этим пользовательским элементом управления.Я также хочу иметь возможность изменять внешний вид слайдеров с помощью пользовательских скинов.Итак, вот типичная команда для изменения кнопки на слайдере.
colorSlider1.ThumbInnerColor = Color.FromArgb(99, 130, 208);
И это прекрасно работает.Однако я хочу сделать это в цикле.Все элементы управления находятся на панели, называемой задней панелью.Вот пример изменения цвета кнопки:
foreach (Panel pnl in backPanel.Controls)
{
foreach (Control c in pnl.Controls)
{
if (c is Button)
{
c.ForeColor = Color.Black;
}
}
}
Это прекрасно работает.Однако, если я попробую это:
foreach (Panel pnl in backPanel.Controls)
{
foreach (Control c in pnl.Controls)
{
if (c is ColorSlider.ColorSlider)
{
c.ThumbInnerColor = Color.FromArgb(99, 130, 208);
}
}
}
В этом случае Visual Studio выдает синтаксическую ошибку
Ошибка CS1061 «Control» не содержит определения для «ThumbInnerColor» и не имеет доступного метода расширения'ThumbInnerColor', принимающий первый аргумент типа 'Control', может быть найден (вам не хватает директивы using или ссылки на сборку?)
Итак, у кого-нибудь есть идеи, как это исправить?Спасибо