|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
06.09.2012, 14:01 | #1 |
Пользователь
Регистрация: 11.05.2012
Сообщений: 85
|
Как прокрутить DataGridView, чтобы было видно нужную строку?
Добрый день!
Есть ли способ принудительно прокрутить DataGridView до селектируемой из программы строки, кроме row.Selected = true? Не так все просто! Selected действительно "подсвечивает" строку, но скроллирует ее в видимую область только в простейших случаях, не обремененных обработкой множества событий. Обычно после всех событий, при которых фокус скачет по логике MS и программы, крайне желательно бывает все-таки показать юзеру нужную ему строку, а не просто выделить ее где-то за границей, куда она улетела. В некоторых языках, даже в PowerBuilder, язык которого давно считался 4GL, где по определению не должно быть лишних "мелких" функций в интерфейсе программиста, и то есть специальная отдельная функция, точно не помню, но что-то типа SctollTo(index). А в VC 2005/2008/2010 C# я не вижу ничего подобного. Видимо, в MS упорно считают, что Selected решает все вопросы. Но иногда, и часто, эту логику сбивает последовательность событий, у которых своя логика, установленная той же MS. Может быть, кто-нибудь, кому (как и мне) надоело все время натыкаться на эту "мелочь", каковая "мелочь" не есть таковая для пользователя, все-таки нашел способ реально прокручивать DataGridView до указываемой из программы строки? Спасибо за внимание. Последний раз редактировалось Гаврилов; 06.09.2012 в 14:26. |
06.09.2012, 17:11 | #2 |
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
Может помочь ScrollIntoView
Благодарить в репутацию. Проклинать — туда же
|
07.09.2012, 10:53 | #3 |
Пользователь
Регистрация: 11.05.2012
Сообщений: 85
|
Спасибо.
Но это пример датагрида из WPF, а я работаю в Visual Studio на C# в обычном стиле Windows Forms и сейчас дорабатываю довольно большое свое приложение, находящееся в пользовании, которое сильно модифицировать давно уже стало просто немыслимо. Ведь, насколько я понимаю, чтобы использовать WPF, надо и проект изначально создавать в этом же стиле. Или я ошибаюсь, можно просто подключить какую-то библиотеку и, продолжая работать в Windows Forms, использовать блага WPF? |
07.09.2012, 11:17 | #4 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
Вы можете только хостить wpf контролы под винформами. Насколько это практично - ? Можно и наоборот.
|
07.09.2012, 11:23 | #5 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
Другое дело начинать ли проект на винформах?... Мы отказались, только впф. и только если требуют окна, иначе web.
|
07.09.2012, 11:29 | #6 |
Пользователь
Регистрация: 11.05.2012
Сообщений: 85
|
Простите, мне нужен более подробный ответ, чем просто "хостить". Вот, к примеру, я в том же Solution, о котором идет речь, использую для докинга библиотеку DotNetMagic.dll, которую я ввел в состав Reference ведущего проекта. Как оказалось, Visual Studio с DotNetMagic совершенно другого производителя отлично уживается (за исключением некоторых моментов, которые можно обойти). Если я так же сделаю с библиотекой, например, WPFToolkit.dll - будет ли тот же эффект? Может быть, Вы посоветуете другую DLL?
|
07.09.2012, 11:48 | #7 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
Оевет на вопрос темы - http://msdn.microsoft.com/ru-ru/libr...growindex.aspx
оно? Про хостинг - http://msdn.microsoft.com/en-us/libr...ementhost.aspx |
07.09.2012, 12:18 | #8 |
Пользователь
Регистрация: 11.05.2012
Сообщений: 85
|
Спасибо, eval! Вашу "репутацию" в этом блоге, на мой взгляд, давно уже следовало существенно повысить.
(Впрочем, я не понимаю в ней особо ценного смысла. Иной раз "начинающий" так подскажет, как никакому "гуру" не взбредет именно в силу его "гурости", т.е. суперосведомленности, которой уже недоступны затруднения начинающих,- а это часто случается и в этом блоге. Этим начинающим нужно, может быть, не подсказать что-то конкретное, чего они просят по своему недоумению, а просто надо их подбодрить, пошутить с ними, показать, что не так все страшно, если немного глубже копнуть, и вообще, надо им еще поработать, это не смертельно. Себя я нескромно позиционирую где-то "между", и выступаю то в одной, то в другой роли.) Ваше указание на FirstDisplayedScrollingRowIndex - это как раз то, чего мне не хватало. Я почему-то думал, что это свойство работает только на "get". Оказывается, не обязательно переходить на WPF, чтобы крутить датагрид . Новые проекты я предполагаю все же начинать в стиле WPF, хотя, как я почитал посты, и там есть свои тараканы (но где их нет?). Всем: ИЗВИНИТЕ ЗА ВНИМАНИЕ ! Последний раз редактировалось Гаврилов; 07.09.2012 в 12:45. Причина: грамматика |
07.09.2012, 12:23 | #9 | |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
Цитата:
|
|
07.09.2012, 12:53 | #10 |
Пользователь
Регистрация: 11.05.2012
Сообщений: 85
|
Не припомню случая, чтобы не нашелся выход. Найдем противоядие и против этих тараканов - заведем клопов, например. Хотя как раз клопы и пропали, потому что их съели тараканы - ну, тогда заведем попугая.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Что бы C# цеплял нужную строку из HTML | dr.dimm | C# (си шарп) | 5 | 24.09.2011 11:05 |
как узнать что было выбрано в RadioGroup | Handy | Общие вопросы Delphi | 2 | 06.04.2010 17:15 |
Как сделать чтобы во время поиска по таблице не было видно перемещения по dbgrid? | alxsev | БД в Delphi | 4 | 10.04.2009 19:03 |
Как добавить нужную строку в memo | Volkogriz | Общие вопросы Delphi | 5 | 02.12.2008 22:38 |
Как найти нужную строку в ListBox? | DelphiKettle | Помощь студентам | 2 | 05.09.2007 22:02 |