Прокрутка DataGridViewCell
От: Thrillobite  
Дата: 05.09.10 09:21
Оценка:
Всем привет!

Помогите, пожалуйста, решить одну проблему... Есть ячейки в DataGridView, в которых много текста, и есть ограничение по высоте строки. Чтобы можно было прокрутить содержимое всей ячейки, я в обработчике события EditingControlShowing у DataGridView делаю следующее:

(e.Control as TextBox).ScrollBars = ScrollBars.Vertical;


У моей ячейки появляется скорллбар и все как будто бы замечательно. Но если я — даже в режиме редактирования ячейки — кручу колесо мыши, то прокручивается вовсе не скроллбар ячейки, а скролл всей гридвью (а мне-то надо прокручивать как раз ячейку). Кроме того, если я "иду" по строкам внутри ячейки стрелками, то, дойдя до верхней строки, я автоматически перехожу на ячейку в предыдущей строке, а мне надо, чтобы курсор "упирался" в верх ячейки и никуда больше не переходил (тоже самое, конечно, и для стрелки вниз). К слову сказать в гриде DevExpress именно такое поведение, как мне надо: при редактировании ячейки весь приоритет отдается это ячейке — и скроллбар работает только для нее, и стрелки для навигации. Но к сожалению девэкспрессовый грид платный ...

Единственное решение, которое я пока придумал — это выключать у гридвью скроллбары в начале редактирования ячейки и включать в конце. Но мне это решение очень не нравится, т.к. это весьма пугающе для пользователей: вдруг пропадает скроллбар и потом непонятно как его вернуть назад (выход из режима редактирования ячейки — вещь весьма неочевидная для непрограммистов ).

Так что вот такая у меня проблема. Может быть у кого-нибудь есть рецепты для обхода? Или, может быть, вы посоветуете какой-то другой компонент "таблица WinForms", не такой страшный , как DataGridView, но в то же время бесплатный? Если непонятно изложил — извините, попробую переформулировать.

Заранее спасибо!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.