Изменение цвета кнопки трекбаром через Color.FromArgb C#

140
28 августа 2019, 11:50

Необходимо правильно масштабировать ползунок. Задача следующая, при перемещении ползунка с диапазоном от 0 до 10 необходимо менять цвет кнопки. Необходимо в каждый канал цвета передавать значения от 0-255. Пока получилось, но не знаю как масштабировать третий канал упирается в предел 174.

 public class ColorCalculator
{
    public int First { get; set; }
    public int Second { get; set; }
    public int Third { get; set; }
    public void Test(int val)
    {
        First = (int)76.5 * val;
        int buf = 0;
        if (First >= 255)
        {
            buf = First;
            First = 255;
            Second = buf - First;
        }
        if (Second >= 255)
        {
            buf = Second;
            Second = 255;
            Third = buf - Second;
        }
        if (Third >= 255)
        {
            Third = 255;
        }
    }
}

Мейн

public partial class Form1 : Form
{
    private ColorCalculator c;
    public Form1()
    {
        InitializeComponent();
        c = new ColorCalculator();
    }
    private void GetNumber()
    {
        /// Максимальное число 3 х 255 = 765 / 10
        var temp = 76.5;
        c.Test(trackBar1.Value);
        button1.BackColor = Color.FromArgb(c.First, c.Second, c.Third);
    }
    private void trackBar1_Scroll(object sender, EventArgs e)
    {
        label1.Text = c.First.ToString();
        label2.Text = c.Second.ToString();
        label3.Text = c.Third.ToString();
        GetNumber();
    }
}

И если ползунок тащить в обратном направлении, значения не обнуляются. Не пойму как это сделать.

Answer 1

Два момента.

Первый: Вы считываете значения свойств (First,...) до их вычисления.

private void trackBar1_Scroll(object sender, EventArgs e)
{
    GetNumber();
    label1.Text = c.First.ToString();
    label2.Text = c.Second.ToString();
    label3.Text = c.Third.ToString();
}

Второй: Отбрасывать дробную часть надо после умножения.

First = (int)(76.5 * val);
READ ALSO
Что за параметр “connection”?

Что за параметр “connection”?

При попытке обновления базы данных, получаю вот такую ошибку в диспетчере пакетов

132
вывод результата запроса PostgreSQL в таблицу

вывод результата запроса PostgreSQL в таблицу

Подскажите, пожалуйста, как можно выполнить запрос PostgreSQL средствами C#, используя библиотеку NpgsqlА именно, нужно выполнить простой запрос...

140
Вернуть выборку из анонимного PLSQL блока в C#

Вернуть выборку из анонимного PLSQL блока в C#

Получилось вернуть выборку из запроса SELECT, но вот хотелось бы вернуть отдельную таблицу, с которой в теле блока делали много разногоЧто-то...

122
MVVM реализация событий контролов

MVVM реализация событий контролов

Всем доброго времени суток! Пытаюсь разобраться с реализацией паттерна MVVM с использованием библиотек от GalaSoftЗастопорился на EventToCommand

102