| Автор | 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# не пишу. |
| ок спасибо за помощь, буду пробовать. |