Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > .NET > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 06.09.2012, 14:01   #1
Гаврилов
Форумчанин
 
Регистрация: 11.05.2012
Сообщений: 85
Репутация: 10
По умолчанию Как прокрутить 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
Luuzuk
Участник клуба
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Адрес: Самара
Сообщений: 975
Репутация: 605

icq: З7ЧЗЗ89Ч5
По умолчанию

Может помочь ScrollIntoView
__________________
Благодарить в репутацию. Проклинать — туда же
Luuzuk вне форума   Ответить с цитированием
Старый 07.09.2012, 10:53   #3
Гаврилов
Форумчанин
 
Регистрация: 11.05.2012
Сообщений: 85
Репутация: 10
По умолчанию

Спасибо.
Но это пример датагрида из WPF, а я работаю в Visual Studio на C# в обычном стиле Windows Forms и сейчас дорабатываю довольно большое свое приложение, находящееся в пользовании, которое сильно модифицировать давно уже стало просто немыслимо. Ведь, насколько я понимаю, чтобы использовать WPF, надо и проект изначально создавать в этом же стиле. Или я ошибаюсь, можно просто подключить какую-то библиотеку и, продолжая работать в Windows Forms, использовать блага WPF?
Гаврилов вне форума   Ответить с цитированием
Старый 07.09.2012, 11:17   #4
eval
паяю
 
Регистрация: 29.08.2012
Сообщений: 4,030
Репутация: 422
По умолчанию

Вы можете только хостить wpf контролы под винформами. Насколько это практично - ? Можно и наоборот.
eval вне форума   Ответить с цитированием
Старый 07.09.2012, 11:23   #5
eval
паяю
 
Регистрация: 29.08.2012
Сообщений: 4,030
Репутация: 422
По умолчанию

Другое дело начинать ли проект на винформах?... Мы отказались, только впф. и только если требуют окна, иначе web.
eval вне форума   Ответить с цитированием
Старый 07.09.2012, 11:29   #6
Гаврилов
Форумчанин
 
Регистрация: 11.05.2012
Сообщений: 85
Репутация: 10
По умолчанию

Простите, мне нужен более подробный ответ, чем просто "хостить". Вот, к примеру, я в том же Solution, о котором идет речь, использую для докинга библиотеку DotNetMagic.dll, которую я ввел в состав Reference ведущего проекта. Как оказалось, Visual Studio с DotNetMagic совершенно другого производителя отлично уживается (за исключением некоторых моментов, которые можно обойти). Если я так же сделаю с библиотекой, например, WPFToolkit.dll - будет ли тот же эффект? Может быть, Вы посоветуете другую DLL?
Гаврилов вне форума   Ответить с цитированием
Старый 07.09.2012, 11:48   #7
eval
паяю
 
Регистрация: 29.08.2012
Сообщений: 4,030
Репутация: 422
По умолчанию

Оевет на вопрос темы - http://msdn.microsoft.com/ru-ru/libr...growindex.aspx
оно?

Про хостинг - http://msdn.microsoft.com/en-us/libr...ementhost.aspx
eval вне форума   Ответить с цитированием
Старый 07.09.2012, 12:18   #8
Гаврилов
Форумчанин
 
Регистрация: 11.05.2012
Сообщений: 85
Репутация: 10
По умолчанию

Спасибо, eval! Вашу "репутацию" в этом блоге, на мой взгляд, давно уже следовало существенно повысить.
(Впрочем, я не понимаю в ней особо ценного смысла. Иной раз "начинающий" так подскажет, как никакому "гуру" не взбредет именно в силу его "гурости", т.е. суперосведомленности, которой уже недоступны затруднения начинающих,- а это часто случается и в этом блоге. Этим начинающим нужно, может быть, не подсказать что-то конкретное, чего они просят по своему недоумению, а просто надо их подбодрить, пошутить с ними, показать, что не так все страшно, если немного глубже копнуть, и вообще, надо им еще поработать, это не смертельно. Себя я нескромно позиционирую где-то "между", и выступаю то в одной, то в другой роли.)
Ваше указание на FirstDisplayedScrollingRowIndex - это как раз то, чего мне не хватало. Я почему-то думал, что это свойство работает только на "get". Оказывается, не обязательно переходить на WPF, чтобы крутить датагрид .
Новые проекты я предполагаю все же начинать в стиле WPF, хотя, как я почитал посты, и там есть свои тараканы (но где их нет?).
Всем: ИЗВИНИТЕ ЗА ВНИМАНИЕ !

Последний раз редактировалось Гаврилов; 07.09.2012 в 12:45. Причина: грамматика
Гаврилов вне форума   Ответить с цитированием
Старый 07.09.2012, 12:23   #9
eval
паяю
 
Регистрация: 29.08.2012
Сообщений: 4,030
Репутация: 422
По умолчанию

Цитата:
в стиле WPF, хотя, как я почитал посты, и там есть свои тараканы
На мой взгляд оне не такие агресивные.
eval вне форума   Ответить с цитированием
Старый 07.09.2012, 12:53   #10
Гаврилов
Форумчанин
 
Регистрация: 11.05.2012
Сообщений: 85
Репутация: 10
По умолчанию

Не припомню случая, чтобы не нашелся выход. Найдем противоядие и против этих тараканов - заведем клопов, например. Хотя как раз клопы и пропали, потому что их съели тараканы - ну, тогда заведем попугая.
Гаврилов вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что бы 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 23:38
Как найти нужную строку в ListBox? DelphiKettle Помощь студентам 2 05.09.2007 22:02


04:01.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru