0 / 0 / 0
Регистрация: 20.10.2010
Сообщений: 7
1

Как изменить цвет фона ячейки ListView

20.10.2010, 14:24. Показов 13274. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток, уважаемые.

Проблема - пишу приложение в Access. И для одной из форм очень бы хотелось использовать разный цвет фона для отображения ячеек в элементе listview. В стандартных свойствах такого нет. Перерыл весь форум и пол гугла - не нашел. Может-ли кто-нибудь подсказать? Был-бы очень признателен.
PS. В идеале хотелось-бы исходник примерчик))
0
20.10.2010, 14:24
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.10.2010, 14:24
Ответы с готовыми решениями:

Как изменить цвет фона строки в ListView
Привет форумчане и гости. Я нещадно использую Excel, есть много макросов и форм со списками. Мой скилл и знания программирования...

Как изменить цвет фона страницы?
Когда-то давно сделал в Word-е по умолчанию серый цвет фона страницы (Формат>Фон). Сейчас вздумалось сделать кнопку, которая бы по клику в...

Функция определенная пользователем: как изменить цвет ячейки
Всем привет! Нужно написать функцию, "определенную пользователем", которая, будучи кинутой на ячейку, изменяла бы ее цвет (заливку) на...

13
204 / 43 / 6
Регистрация: 15.10.2010
Сообщений: 125
20.10.2010, 14:45 2
Цитата Сообщение от dpis Посмотреть сообщение
Доброго времени суток, уважаемые.

Проблема - пишу приложение в Access. И для одной из форм очень бы хотелось использовать разный цвет фона для отображения ячеек в элементе listview. В стандартных свойствах такого нет. Перерыл весь форум и пол гугла - не нашел. Может-ли кто-нибудь подсказать? Был-бы очень признателен.
PS. В идеале хотелось-бы исходник примерчик))
А можно было бы картинку того, что хотите на выходе?
0
0 / 0 / 0
Регистрация: 20.10.2010
Сообщений: 7
20.10.2010, 14:50  [ТС] 3
Примерно так
Миниатюры
Как изменить цвет фона ячейки ListView  
0
204 / 43 / 6
Регистрация: 15.10.2010
Сообщений: 125
20.10.2010, 15:17 4
Цитата Сообщение от dpis Посмотреть сообщение
Примерно так
Если надо изменить фон всего выпадающего списка в форме MSAccess, это прописывается так:

НазвФормы.BackColor=номер цвета

например, поле со списком называется Sp2.Выделяем его красным цветом

Sp2.BackColor = 477
0
0 / 0 / 0
Регистрация: 20.10.2010
Сообщений: 7
20.10.2010, 15:25  [ТС] 5
Ну, во-первых речь идет не о ListBox, а все-таки о ListView (Элемент ActiveX, Microsoft ListView Control)
а во-вторых, нужно именно цвет фона ячейки. Цвет фона элемента и так понятно...
0
204 / 43 / 6
Регистрация: 15.10.2010
Сообщений: 125
20.10.2010, 15:31 6
Цитата Сообщение от dpis Посмотреть сообщение
Примерно так
Если надо изменить фон всего выпадающего списка в форме MSAccess, это прописывается так:

НазвФормы.BackColor=номер цвета

например, поле со списком называется Sp2.Выделяем его красным цветом

Sp2.BackColor = 477

А для excel это выглядело бы так

Cells(номер строки, номер столбца).Interior.ColorIndex = 3

если не подходит, скиньте строку кода, куда надо вставить выделение цветом.
0
0 / 0 / 0
Регистрация: 20.10.2010
Сообщений: 7
20.10.2010, 15:38  [ТС] 7
Не подходит.
Еще раз - это не выпадающий список. Это не изменение цвета всего элемента. Это не выделение цветом ячейки в Excel. Это не использование стандартных методов и свойств.

Мне нужен пример выделения фона ячейки цветом в элементе ListView. В Access.
Это должно решатся каким-то образом с помощью то-ли CustomDraw, то-ли OwnerDraw. Но примеров использования я так и не нашел.
0
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
20.10.2010, 17:49 8
dpis,
у тебя форма в VBA? Как её вообще сделать?
0
0 / 0 / 0
Регистрация: 20.10.2010
Сообщений: 7
20.10.2010, 17:58  [ТС] 9
Форма в Access
В аттаче - база с формой, с элементом ListView
Вложения
Тип файла: rar test.rar (10.7 Кб, 192 просмотров)
0
204 / 43 / 6
Регистрация: 15.10.2010
Сообщений: 125
22.10.2010, 10:03 10
Форма в Access
В аттаче - база с формой, с элементом ListView
У ListView, согласно 3-м книжкам есть только свойство ListItem, поэтому и на CellSеt, и на BackColor VBA ругается.Чтобы не писать отдельную функцию, под разделение области ListView на ячейки, есть предложение раскрасить шрифт во вторм столбце. Выглядеть это будет так(ваш обновленный файлик с поправкой прилагаю):
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Option Compare Database
 
Private Sub Form_Load()
 
Dim rw%
Dim clr
 
clr = Array(255, 32768, 16711680) 'массив индексов выбранных цветов(красный-255, зеленый-32768 и синий)
 
For rw = 1 To Val(InputBox("Сколько ячеек выделить?")) ' Заполнение строк заводим в цикл
Set col_item = ListView_owner.ListItems.Add(, , "Строка " & rw)
Call col_item.ListSubItems.Add(, , "Ячейка №" & rw & " для раскраски")
ind = IIf(ind < 2, ind + 1, 0) 'чтобы цвета повторялись, пересчет меняем индекс цвета
col_item.ListSubItems(1).ForeColor = clr(ind) ' раскрашиваем шрифт во втором столбце
Next
 
End Sub
Вложения
Тип файла: rar test.rar (17.8 Кб, 162 просмотров)
0
0 / 0 / 0
Регистрация: 20.10.2010
Сообщений: 7
22.10.2010, 10:20  [ТС] 11
Спасибо конечно, но это не то...
У кого-нибудь еще есть какие-то предложения?
0
204 / 43 / 6
Регистрация: 15.10.2010
Сообщений: 125
22.10.2010, 11:15 12
Цитата Сообщение от dpis Посмотреть сообщение
Спасибо конечно, но это не то...
У кого-нибудь еще есть какие-то предложения?
А для чего именно нужно выделение цветом? И почему именно фона ячейки?если принципиально именно выделение ячейки, можно попробовать написать специальную функцию или применить дрйгой элемент вместо ListView (например, там есть вставка листа excel)
0
0 / 0 / 0
Регистрация: 20.10.2010
Сообщений: 7
22.10.2010, 11:40  [ТС] 13
Итак, есть база данных - договора аренды земли для крупного агрохолдинга. Куча свойств, параметров, формочек. Все отлично работает. Около 50 тысяч записей.
Но кроме этого, они захотели видеть свои владения визуально - купили приборчик по обмеру полей, приборчик замечательно выдает контур поля по координатам широты и долготы в Google Earth.
Есть ActiveX, который чудесно работает с векторной графикой. Забил в форму карту, поля по координатам. Красиво...
Опять, же - у поля куча параметров - тип земли, урожайность, орошение, владельцы... И, исходя из разного набора параметров требуется закрасить поля разным цветом (типа - земля наша зелененький, не наша красненький). Но, если захотелось посмотреть одновременно и тип земли, и что растет, и еще что-то, получается какая-то цветовая мешанина. Поэтому, чтобы не забивать на каждый тип, вид параметра свой цвет, хотел сделать форму выбора цвета, исходя из предложенных параметров.
То есть, мне, кроме всего прочего, нужно будет повесить событие обработки на клик мышки по закрашенной ячейке. Если вставлять Excel, получается ну очень некрасиво. Если закрашивать шрафт, оттенки цвета теряются (типа наше поле темно зеленое, а наше, но отданное в аренду светло зеленое).
Вот собственно и все.

PS. Прекрасно понимаю, что вместо Access лучше было-бы использовать какую-нибудь другую СУБД, помощнее, но начиналось все с пары формочек для удобства, и теперь переписывать все уже поздно - приходится выкручиваться на Access
0
204 / 43 / 6
Регистрация: 15.10.2010
Сообщений: 125
22.10.2010, 12:07 14
Понятно. результат не гарантирую, но попробую что-нибудь придумать
0
22.10.2010, 12:07
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.10.2010, 12:07
Помогаю со студенческими работами здесь

Можно ли изменить цвет фона нескольких ячеек?
можно ли изменить цвет фона нескольких ячеек? Range(Cells(i, 1), Cells(i, 12)).Interior.ColorIndex = 18 работает, если только задать...

Определять, был ли изменен цвет фона (заливки) данной ячейки после снятия с нее фокуса
Имеется лист с таблицей. Задача следующая, нужно определять был ли изменен цвет фона (заливки) данной ячейки после снятия с нее фокуса. ...

Изменить цвет ячейки на синий
Подскажите, пожалуйста, как можно запустить макрос при наведении на ячейку на листе Excel. Хочу сделать, чтобы ячейка на которую навёл...

Изменить цвет шрифта ячейки, если в ней содержится определенная буква
данный макрос разлагает содержимое столбца ячеек разделенное пробелом на составляющие: где каждый разделенный компонент будет оформлен...

Как программно установить в Excel цвет фона диапазона ячеек?
Привет всем ! Собственно, из вопроса всё ясно. Cпасибо, ZandR


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Опции темы

Новые блоги и статьи
Микросервис с нуля на Go с Kafka
stackoverflow 12.02.2025
Когда я впервые столкнулся с необходимостью разделить монолитное приложение на микросервисы, передо мной встал вопрос выбора правильных технологий и подходов. После долгих экспериментов с различными. . .
Микросервис с нуля на C# с RabbitMQ
stackoverflow 12.02.2025
Переход от монолитной архитектуры к микросервисной - это не просто модное веяние, а закономерный этап эволюции программных систем. В отличие от монолита, где все компоненты тесно связаны между собой. . .
Docker для начинающих
stackoverflow 12.02.2025
В современном мире разработки программного обеспечения все чаще возникает необходимость быстро и надежно разворачивать приложения в различных средах. Разработчики постоянно сталкиваются с проблемой. . .
Создание бота для Телеграм на C#
stackoverflow 12.02.2025
В современном мире корпоративных коммуникаций Telegram-боты становятся незаменимым средством автоматизации бизнес-процессов и взаимодействия с сотрудниками. Как создать такого бота, который сможет. . .
Операторы сравнения (== и ===) в JavaScript
hw_wired 12.02.2025
JavaScript предоставляет два основных оператора сравнения - оператор нестрогого равенства (==) и оператор строгого равенства (===). На первый взгляд они могут показаться очень похожими, но их. . .
Определение адреса, откуда репозиторий Git был клонирован
hw_wired 12.02.2025
Система контроля версий Git хранит всю информацию о репозитории в специальной директории . git, включая данные об удаленных источниках. Эта информация необходима для синхронизации изменений между. . .
Объединение нескольких коммитов Git в один
hw_wired 12.02.2025
Представьте, что вы работаете над новой функциональностью и создали десяток небольших коммитов: исправление опечатки, форматирование кода, добавление комментариев, реализация основной логики. Каждый. . .
Как добавить локальную ветку в удалённый репозиторий Git
hw_wired 12.02.2025
Локальная ветка в Git - это изолированная линия разработки, существующая только на вашем компьютере. Представьте себе дерево с множеством веток - каждая ветка может расти в своем направлении, не. . .
Статическое отражение в C++
stackoverflow 12.02.2025
Статическое отражение представляет собой мощный механизм, позволяющий программам анализировать и манипулировать своей собственной структурой во время компиляции. Эта возможность открывает. . .
C++ в 21 веке - Бьярне Страуструп
stackoverflow 12.02.2025
В современном мире разработки программного обеспечения C++ продолжает оставаться одним из ключевых языков программирования, несмотря на свой солидный возраст - более 45 лет с момента создания. За это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru