|
0 / 0 / 0
Регистрация: 23.02.2017
Сообщений: 24
|
|
Закрасить текстбоксы в разный цвет23.02.2017, 13:33. Показов 5357. Ответов 19
Метки нет (Все метки)
Всем привет. Задача такая: есть несколько десятков текстбоксов с цифровыми значениями, в экселе конечный результат выглядит так
Пишу на vb.net программу и не могу понять как именно написать код, чтобы считались максимальные/минимальные значения в этих текстбоксах и в зависимости от этого закрашивались эти текстбоксы, по типу градиента на массиве текстбоксов. Минимальные значения-зеленым, максимальные-красным, промежуточные значения-желтым и оранжевым. Значения в текстбоксах меняются, т.е. окрашивание тоже должно меняться вслед за изменениями этих значений. В экселе это легко делается через условное форматирование, а вот тут я застрял...
0
|
|
| 23.02.2017, 13:33 | |
|
Ответы с готовыми решениями:
19
Закрасить два круга в разный цвет
Разный цвет текста в label |
|
79 / 72 / 4
Регистрация: 05.01.2016
Сообщений: 288
|
||||||
| 23.02.2017, 15:09 | ||||||
|
Можно так:
На скорую руку накидал
0
|
||||||
| 23.02.2017, 16:58 | ||||||
|
Можно так
4
|
||||||
| 23.02.2017, 22:46 | ||||||
|
Можно и по-другому.
Кликните здесь для просмотра всего текста
4
|
||||||
| 23.02.2017, 23:36 | |||||||||||
|
После строки 13 вставьте
Окончательный вариант (наверное праздник повлиял).
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 23.02.2017
Сообщений: 24
|
|
| 24.02.2017, 12:48 [ТС] | |
|
Ого! это гениально!!! я ничего лучше не придумал чем задать диапазоны чисел и присвоить им параметры цвета...получилась хренова туча строк на один текстбокс...
Скажите, ovva а если я хочу задать градацию цвета от зеленого до красного с промежутком между ними в желтом цвете, то где можно задать это в Вашем коде?
0
|
|
| 24.02.2017, 13:23 | |
|
Здесь речь идет о цветовой модели HSV (https://ru.wikipedia.org/wiki/... 0%BB%D1%8C)), где цветовой тон (Hue) изменяется в интервале [0,360]. Для ограничения диапазона цветов до красный-желтый-зеленый достаточно уменьшить диапазон до [0,200] (примерно). В программе границы диапазона задаются переменными hMin и hMax соответственно.
1
|
|
|
0 / 0 / 0
Регистрация: 23.02.2017
Сообщений: 24
|
|
| 24.02.2017, 14:58 [ТС] | |
|
Вроде бы и просто и в то же время сложно...
А где можно задать значение зеленого цвета? Чтобы начинался не с салатового а с темно-зеленого?
0
|
|
| 24.02.2017, 15:23 | ||||||
|
Можно попробовать поиграть с параметрами Saturation и Brightness. В программе они приняты постоянными 90 и 100 соответственно. Но можно, если интересует только зеленый, и так:
1
|
||||||
|
1086 / 916 / 213
Регистрация: 29.09.2015
Сообщений: 1,019
|
||||||
| 24.02.2017, 15:58 | ||||||
|
ovva, отличная затея=)
Вот еще представление. GetBlendColor(Ratio As Single, ParamArray Colors() As Color) Это модифицированная (из одного моего поста) функция для нахождения среднего цвета среди коллекции по значению соотношения Ratio от 0.0 до 1.0 - это соотношение смешивания цветов среди коллекции Colors - коллекция цветов участвующие в смешивании. Должна быть не менее 2 и упорядочена в соответствии требованиям пользователя. То есть, например, коллекция упорядочена зеленый, желтый, красный, то зеленый в начале соответствует значению 0.0, желтый - 0.5 , красный - 1.0. Промежуточные значения будут смешивать только два цвета, в пределах которого оно находится.
2
|
||||||
|
0 / 0 / 0
Регистрация: 23.02.2017
Сообщений: 24
|
|
| 24.02.2017, 17:06 [ТС] | |
|
супер! гораздо меньше букаф в коде стало)))))
ovvo, а чтобы выделялись только максимальные значения или минимальные в диапазоне, что тут надо исправить? Я так понимаю надо присвоить цветовые значения для максимума и для минимума?
0
|
|
| 24.02.2017, 18:28 | |||
|
• это некоторый фиксированный диапазон; • или диапазон определяется динамически, по уже введенным значениям; • min/max определяется конкретным числом или интервалом.
0
|
|||
|
0 / 0 / 0
Регистрация: 23.02.2017
Сообщений: 24
|
||||||||
| 24.02.2017, 18:55 [ТС] | ||||||||
|
Я сделал методом перебора соседних текстбоксов типа:
Получается, что если число в текстбоксе больше соседних, то текстбокс подсвечивается цветом. Так же и для минимальных значений. пример: правее от выделенного синим цветом прямоугольника желтым столбиком подсвечиваются максимумы Умом понимаю, что надо в коде прописывать поиск максимального/минимального значения и присваивать им цвет, а как это реализовать мозг отказывается придумывать((тупик...
0
|
||||||||
| 24.02.2017, 19:52 | |||||||||||
|
Можно так
Кликните здесь для просмотра всего текста
Добавлено через 7 минут удалите строку 26 Добавлено через 13 минут Или так (хотя полагаю, что первый вариант будет работать быстрее) Кликните здесь для просмотра всего текста
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 23.02.2017
Сообщений: 24
|
|
| 24.02.2017, 21:16 [ТС] | |
|
круто! работает. Правда я не понимаю как))))
Содержимое должно быть только число? если знак % стоит, то не работает...
0
|
|
|
0 / 0 / 0
Регистрация: 23.02.2017
Сообщений: 24
|
|
| 24.02.2017, 21:39 [ТС] | |
|
Всё же не все значения выделяются...на фотке красным пометил максимумы, зеленым минимумы - они тоже должны светиться...не знаю, может не правильно задачу написал? эмм... как бы правильно сформулировать то?....нужно поиск макс/мин вести по всему диапазону текстбоксов по трем соседним текстбоксам последовательно друг за другом, так чтобы соответствовало выражению: И(текущий>предыдущего;текущий>последующе го)=макс, И(текущий<предыдущего;текущий<последующе го)=мин.
0
|
|
| 24.02.2017, 23:44 | ||||||||
|
Если гарантирована последовательность TextBox1, TextBox2, … то можно использовать следующий код. Кликните здесь для просмотра всего текста
PS. Тестировал конечно недостаточно, так что эта часть за вами.
0
|
||||||||
|
Модератор
4359 / 3429 / 512
Регистрация: 27.01.2014
Сообщений: 6,258
|
|
| 25.02.2017, 11:57 | |
|
а если так много значений, то может удобнее взять DataGridView и его красить?
0
|
|
|
0 / 0 / 0
Регистрация: 23.02.2017
Сообщений: 24
|
|
| 01.03.2017, 15:57 [ТС] | |
|
к сожалению не знаю я как с DataGridView работать...мне проще с текстбоксами да лэйблами, оно может конечно не логично и не правильно, но пока так...не знаю где найти по DataGridView понятную обучалку на русском языке, на нормальном русском...
0
|
|
|
Модератор
4359 / 3429 / 512
Регистрация: 27.01.2014
Сообщений: 6,258
|
|
| 01.03.2017, 16:40 | |
|
jadd, форум в помощь да и гугл
0
|
|
| 01.03.2017, 16:40 | |
|
Помогаю со студенческими работами здесь
20
Разный цвет слов в контролах Разный цвет строк в таблице разный цвет ячеек в StringGrid Разный цвет текста в input На разных мониторах разный цвет картинок Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3.
Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|