| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Разработка Windows Forms > Подсветка ячейки в DataGridView при наведении указ |
| Автор: tos84 24.12.2009, 10:50 | ||
| На форму кидаю DataGridView, создаю таблицу, заполняю цифрами и указываю ее в качестве источника для датагрида. Надо чтобы при наведении мышки на ячейку она подсвечивалась, а при выходе из ячейки, становилась прежнего цвета. Использую для этого события CellMouseEnter и CellMouseLeave. Все работает, но загвоздка в том, что когда перемещаешь мышку по датагриду, цифры в других ячейках начинают "мерцать". Возникает впечатление, что данные в датагриде стираются и заполняются по новой. Как избежать этого мерцания?
|
| Автор: newbieBH 24.12.2009, 12:55 |
| нашел кое-что по данной теме ... http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/104ba75b-cf93-4f53-9d60-5bffe53e8352, вроде бы там данную проблему решили. |
| Автор: tos84 24.12.2009, 16:44 | ||||
| Спасибо за ссылку. Посмотрел. Там вместо двух событий CellMouseEnter и CellMouseLeave используется одно - MouseMove. Проблема с мерцанием решается тем, что вместо изменения цвета фона ячейки(там строки), над которым находится указатель, делаем эту ячейку(строку) выделенной. Предварительно указав в настройках датагрида нужный нам цвет выделенной ячейки. Тоже до этого додумывался, делал так:
Вроде бы задача решена, но не в моем случае. Т.к. полностью задача выглядит следующим образом: При перемещении указателя по дата гриду, строка над которым находится указатель подсвечивается. При нажатии кнопки мыши на ячейке, происходит событие, которое потом обрабатывается. При этом строка должна оставаться подсвеченной. Загвоздка в том, что если использовать выделение, вместо закраски, то при щелчке мышки, выделяется только эта ячейка. Пробовал делать так:
Но тогда видно, что сначала выделяется ячейка, а затем вся строка. При закраске, такой проблемы не возникает, делаем цвет выделенной ячейки прозрачным. Искал инфу почему при закраске ячейки(строки) мерцают другие, но так и не нашел внятного ответа. Неужели ни у кого не возникало подобной ситуации? |