С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
5 / 5 / 0
Регистрация: 06.06.2014
Сообщений: 94

Плавная смена цвета listbox

25.10.2014, 15:23. Показов 2520. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дорогие программисты, нужна помощь. Смысл заключается в том, что нужно постепенно, а точнее плавно сменить цвет ListBox. Просто смена цвета у меня получилась, вот проект, но постепенной не получается добиться. Помогите, пожалуйста.
Вложения
Тип файла: zip List.zip (44.4 Кб, 14 просмотров)
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.10.2014, 15:23
Ответы с готовыми решениями:

Плавная смена цвета окна
Привет форумчане! у меня появился вопрос: У меня при запуске программы появляется заставка(на ней проверяются присутствуют ли файлы...

Плавная смена цвета RGB
Хочу сделать плавную смену цвета, допустим для фона формы. Желательно как в радуге, от красного до фиолетового и так по кругу. Так же...

Смена цвета строк в Listbox в зависимости от переменной
Нужно сделать так, чтоб строка в листбоксе меняла свой цвет в зависимости от того, доступен ли IP адрес в этой строке Проблема в том, что...

8
 Аватар для Metall_Version
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
25.10.2014, 16:49
Uurh, что значит плавная смена цвета? по времени или градиент,
точнее опишите задание
0
5 / 5 / 0
Регистрация: 06.06.2014
Сообщений: 94
26.10.2014, 09:48  [ТС]
Цитата Сообщение от Metall_Version Посмотреть сообщение
Uurh, что значит плавная смена цвета? по времени или градиент,
точнее опишите задание
Со временем. После нажатия на какой либо элемент цвет выделения должен постепенно смениться. К примеру с черного на серый.
0
1 / 1 / 2
Регистрация: 17.07.2014
Сообщений: 9
27.10.2014, 12:00
Ну дык поменяйте цвет не с черного на серый, а с черного на темно-серый, потом рефреш, потом не очень темно-серый, рефреш и серый.
0
5 / 5 / 0
Регистрация: 06.06.2014
Сообщений: 94
27.10.2014, 18:49  [ТС]
Цитата Сообщение от blackadder321 Посмотреть сообщение
Ну дык поменяйте цвет не с черного на серый, а с черного на темно-серый, потом рефреш, потом не очень темно-серый, рефреш и серый.
Ну если ты открывал проект мой, то ты видел, что сначала идет отрисовка фона, а потом отрисовка текста. Я же прошу подсказать как сделать это плавно, а не слайд шоу (то что ты мне советуешь). Ты мне предлагаешь сделать ~50 функций на каждый оттенок цвета начиная от черного заканчивая серого. А если я захочу сделать от черного до зеленого? оо Просьба не советовать ерунды.

Не по теме:

P.s я запомню твой "не очень темно-серый" на долго) я дико угорел по этому)

0
 Аватар для Metall_Version
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
27.10.2014, 19:22
Лучший ответ Сообщение было отмечено Uurh как решение

Решение

Uurh, в винформе будет криво
катко так, как убрать мерцаиние не знаю.. проще проект на wpf уже писать, там подобное без гемороя возможно
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
public Form1()
        {
            InitializeComponent();
            listBox1.Items.AddRange(new object[] {1,2,3,4,5,6});
        }
 
        private int blackColor = 0;
        private bool refreshFlag = false;
        private void listBox1_DrawItem(object sender, DrawItemEventArgs e)
        {
            // Перерисовываем фон всех элементов ListBox.  
            e.DrawBackground();
 
            // получаем значение выбран ли элемент
            if ((e.State & DrawItemState.Selected) == DrawItemState.Selected)
            {
                if (!refreshFlag && blackColor == 0)
                {
                    refreshFlag = true;
                    Task.Factory.StartNew(() =>
                    {
                        for (int i = 0; i < 128; i++)
                        {
                            ListRefresh(); 
                        }
                        refreshFlag = false;
                    });
                }
 
                if (refreshFlag)
                {
                    var color = Color.FromArgb(blackColor, blackColor, blackColor);
                    e.Graphics.FillRectangle(new SolidBrush(color), e.Bounds);
                }
                else
                {
                    refreshFlag = false;
                    blackColor = 0;
                }
            }
 
 
            // прорисовываем текст
            e.Graphics.DrawString(
                ((ListBox)sender).Items[e.Index].ToString(),
                e.Font, Brushes.Red, e.Bounds,
                StringFormat.GenericDefault);
 
            e.DrawFocusRectangle();
        }
 
        private void ListRefresh()
        {
            if (refreshFlag)
                Invoke(new Action(() =>
                {
                    listBox1.Refresh();
                    blackColor++;
                }));
        }
Добавлено через 38 секунд
Цитата Сообщение от Uurh Посмотреть сообщение
Ну если ты открывал проект мой, то ты видел, что сначала идет отрисовка фона, а потом отрисовка текста. Я же прошу подсказать как сделать это плавно, а не слайд шоу (то что ты мне советуешь). Ты мне предлагаешь сделать ~50 функций на каждый оттенок цвета начиная от черного заканчивая серого. А если я захочу сделать от черного до зеленого? оо Просьба не советовать ерунды.
все верно он говорит.. зачем 50 функций если есть циклы и много поточность
1
5 / 5 / 0
Регистрация: 06.06.2014
Сообщений: 94
28.10.2014, 07:35  [ТС]
спасибо) я знаю, что на wpf легче будет, я бытался, но проекты кривые получаются, если успею перевиду проект на wpf, а так пока на вин форм.
0
1 / 1 / 2
Регистрация: 17.07.2014
Сообщений: 9
28.10.2014, 10:50
лично у меня получилось что-то такое.

если найдешь косяк в коде, из-за которого происходит многократная отрисовка - ткни пальцем.
Вложения
Тип файла: zip List.zip (71.3 Кб, 14 просмотров)
0
5 / 5 / 0
Регистрация: 06.06.2014
Сообщений: 94
28.10.2014, 16:50  [ТС]
Если не сложно покажи как сделать это на WPF
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.10.2014, 16:50
Помогаю со студенческими работами здесь

Плавная смена рандомных цветов
Подскажите как менять цвета плавно? выходит либо резкая смена рандомных цветов, либо плавно но всего два цвета, а нужно и то и другое на...

Плавная смена картинки в PictureBox
Подскажите, как можно осуществить?

Смена цвета
Добрый вечер.Я только начал разбираться в .NET Windows Forms,так что вопрос возможно глупый,но всё же.... Есть вот такой код ...

Таймер, смена цвета
Здравствуйте! Идея такая: на форме есть панель. Нужно, чтобы при нажатии на кнопку &quot;Запустить&quot; она с каким-нибудь интервалом...

Выделение/Смена цвета
Здравствуйте, застрял на таком моменте: Реализую программу, которая считывая с текстового файлы данные будет закрашифать сектора...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru