![]() |
|
Модераторы: gambit, Partizan |
![]()
|
|
| tos84 |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 24.12.2009 Репутация: нет Всего: нет |
C# изучаю недавно, так что если вопрос глупый, сильно не пинайте.
Как из обработчика одного события вызвать обработчик другого события? Есть два события data grida – CellMouseEnter и CellPainting Есть код, но он не работает так как хотелось бы. Закрашивается только стартовая ячейка.
А хотелось бы, чтобы когда мышка наводится на ячейку, в curRow и curCol записывались номер столбца и строки, а затем эти значения передавались в обработчик события CellPainting. Если написать вот так, то не работает, выдает ошибку.
|
||||
|
|||||
| tol05 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 11 Всего: 170 |
а почему бы так не сделать?
-------------------- На хорошей работе и сны хорошие снятся. |
|||
|
||||
| tos84 |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 24.12.2009 Репутация: нет Всего: нет |
Этот вариант не подходит. Вопрос вытекает вот из этой темы, т.к. простого способа не нашлось, значит надо перерисовать ячейку и на нее добавить текст из этой ячейки с помощью e.Graphics.DrawString.
Например для одной ячейки это будет выглядеть так:
Более жизненный пример, есть БД данные из которой отображаются в датагриде. БД обновляется. Нам, к примеру, надо чтобы в первой колонке, на заднем фоне, в зависимости от значения в этой ячейке рисовался еще один прямоугольник, пропорциональный этому значению. Вот код:
Тут уже без перерисовки ячейки не обойтись. Рисунок для наглядности. |
||||
|
|||||
| tol05 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 11 Всего: 170 |
тогда так попробуйте
-------------------- На хорошей работе и сны хорошие снятся. |
|||
|
||||
| tos84 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 24.12.2009 Репутация: нет Всего: нет |
Спасибо за подсказку! Работает.
Только как сделать чтобы когда мышка выходит из этой ячейки, она становилась тогоже цвета что и была до этого, сообразить не могу. Зато нашел большой пример, там вместо закраски рамка, будем разбираться. |
|||
|
||||
| tol05 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 11 Всего: 170 |
Т.е. нужно вводить дополнительные условия (флаги) в Paint.. чтобы при вхождении мыши в ячейку и при ее "уходе" ячейка получала разные цвета -------------------- На хорошей работе и сны хорошие снятся. |
||||
|
|||||
| tos84 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 24.12.2009 Репутация: нет Всего: нет |
Получилось.
При входе в клетку, она подсвечивается, при выходе, становится такой, как и была до этого.
Только я не могу понять КАК это работает. Когда мышка заходит в клетку и она закрашивается, это понятно. Но когда выходит - откуда берется цвет фона по умолчанию? Ну да ладно, главное что работет. Плюсы такого решения: Не "мерцают" другие клетки, при изменении цвета ячейки, как при использовании .Style.BackColor для грида. Вместо сплошной закраски, можно изобразить что-то свое, хоть рамку двойную. Простота и понятность, даже для новичка, по сравнению с этим Думаю эта тема пригодится многим. Прикрепляю полностью готовый пример. tol05, еще раз спасибо за помощь. Это сообщение отредактировал(а) tos84 - 27.12.2009, 18:58 Присоединённый файл ( Кол-во скачиваний: 8 )
TestGrid.rar 24,34 Kb |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Разработка Windows Forms | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |