|
Область отсечения по ячейке DataGridView
|
|||
---|---|---|---|
#18+
В DataGridView имеется колонка с ComboBox'ами. Необходимо задать область отсечения (Cursor.Clip) по ячейке из этой колонки при ее редактировании. Пробовал двумя способами: через событие CellPainting и через событие Enter, которое происходит при редактировании ComboBox'а из столбца (посредством события EditingControlShowing). Через событие CellPainting: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Через событие Enter: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
В обоих случаях алгоритм работает, если число прибавляемое к координате Left+= 600, но координаты отсечения тогда не попадают на нужную ячейку. Если увеличивать слагаемое до 700 и выше программа ведет себя так как будто отсечения области курсора нет совсем. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2021, 11:36 |
|
Область отсечения по ячейке DataGridView
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2021, 11:37 |
|
Область отсечения по ячейке DataGridView
|
|||
---|---|---|---|
#18+
Есть экранные координаты, есть клиентские координаты. Возможно, проблема в них. В разных местах используются те или иные. Нужно их пересчитывать по необходимости. Смотри методы PointToScreen, RectangleToScreen, PointToClient, RectangleToClient. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2021, 16:59 |
|
Область отсечения по ячейке DataGridView
|
|||
---|---|---|---|
#18+
petalvik, Немного причесал код, но проблема осталась та же. Есть предположение, что проблема в том, что при редактировании ячейки DataGridView создается отдельный компонент ячейки, которая отображается поверх редактируемой и с которой работает EditingControlShowing. Как только курсор заходит на координаты новой ячейки он попадает в область нового компонента и для него перестают работать настройки курсора предыдущего компонента. Может у кого есть идеи как это исправить? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2021, 21:13 |
|
Область отсечения по ячейке DataGridView
|
|||
---|---|---|---|
#18+
В дальнейшем выяснилось, что отсечение не работает вообще во всей программе и без каких либо условий. Вариант в первом сообщении работал, но не попадал в нужную ячейку. Увеличение координаты Х ведет к тому, что отсечение просто не срабатывает. Есть подозрения, что дело в настройках формы. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2021, 03:43 |
|
|
start [/forum/topic.php?fid=20&msg=40098628&tid=1398232]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
51ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 277ms |
total: | 418ms |
0 / 0 |