Автор | C# |
Здравствуйте товарищи. Собственно, вопрос вот в чем: Как изменять цвет панели (Panel) при изменении значения в NumericUpDown? |
В VS2010 если что. |
private void trackBar1_Scroll(object sender, EventArgs e)
{
panel4.BackColor = Color.FromArgb(numericUpDown1.Value);
}
думал так, но видимо это полный бред( |
Почему событие trackBar1_Scroll? Тебе же нужно поймать событие NumericUpDown::ValueChanged |
сори ошибся, там стояло numericUpDown1_ValueChanged и он подчеркивает ошибку после знака = |
Так что же все-таки не так, подскажите кто-нибудь? |
а какая ошибка в логе? |
судя по описанию msdn, функция Color.FromArgb принимает 4 параметра типа byte. Ты туда передаешь одно число numericUpDown1.Value.
http://msdn.microsoft.com/ru-ru/library/system.windows.media.color.fromargb(v=vs.95).aspx |
вот такое http://pikucha.ru/iayw6 |
Попробуй явно преобразовать тип:
panel4.BackColor = Color.FromArgb((int)numericUpDown1.Value); |
ошибка устранилась, но цвет панели не меняется |
А какие значения вводишь? Попробуй с разницей в пару сотен. |
поставил максимум 1000 и при любых значениях цвет не изменяется |
http://gucky.uni-muenster.de/cgi-bin/rgbtab-en вот цвета твои. hex в dec переводи и вот такое большое число должно у тебя выбраться, чтобы был применен такой цвет. Например, чтобы выбрался синий цвет, то должно быть выбрано число 1644912. Поэтому по нормальному нужно сделать 3 ползунка (для компонентов R, G, B) и уже их передавать в функцию Color.FromArgb. |
А не, вру, 255 это синий. 1644912 это оттенок какой-то |
эх.. по нулям, непойму наверно в свойствах что-то напортачил, а по другому нельзя эту программу реализовать? |
ну сделай поле для ввода числа, а не ползунки. Методы на msdn посмотри. Лично я на C# не пишу. |
ок спасибо за помощь, буду пробовать. |