Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выделение записи в DataGridView, datagridView.Rows[index].Selected = true 
:(
    Опции темы
EuGenius_Krivbass
Дата 9.4.2008, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 29.1.2007
Где: Кривбасс, Днепр Украина

Репутация: нет
Всего: нет



DataGridView работает таким образом, что в него загружаются только необходимые в данный момент записи
из DataTable. Рядом с DataGridView есть Scroll.
По скролу определяется, какой диапазон вытягивать для DatagridView из DataTable.
При нажатии на Up в верхней строке DataGridView  - содержимое перегружается со смещением на одну позицию вверх, 
т.е. если была верхняя запись с индексом 15, то станет 14.
Необходимо оставлять выделение строки по отношению к DataGridView (была выделена первая - первая и остается, была 14 - 14 и остается), хотя содержимое строк меняется.
А теперь проблема:
 по кнопке Up - перегружается и выделенная строка остается на своем месте
по скроллу как вверх , так и вниз - то же самое (все хорошо)
по кнопке Down, если курсор на самой нижней строке - DataGridView перегружается, но выделенной строкой становаится строка с индексом в гриде 1!
(вторая сверху)

Как это последнее выделение сделать для нижней строки?
Боков, типа где-то случайно назначил в приложении "1" нету.
после загрузки грида новым содержимым происходит переназначение выделенной строки.
количество строк - всегда одинаковое - зависит от размера самого грида.
В событии OnPaint - четко видно, что грид поставил выделенной строкой - с индексом 1

Это сообщение отредактировал(а) EuGenius_Krivbass - 9.4.2008, 16:45
PM MAIL ICQ Skype YIM   Вверх
vponomarov
Дата 9.4.2008, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 407
Регистрация: 11.8.2007
Где: Киев

Репутация: 5
Всего: 12



EuGenius_Krivbass, а если попробовать ПЕРЕД скролом запоминать индекс выделенной строки, потом загружать новую инфу и выделять строку с индексом который мы запомнили?


--------------------
user posted image
user posted image
PM MAIL ICQ   Вверх
EuGenius_Krivbass
Дата 9.4.2008, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 29.1.2007
Где: Кривбасс, Днепр Украина

Репутация: нет
Всего: нет



Я именно так и делаю, но после установки мною необходимого индекса, DataGridView сам меняет его на "1"
PM MAIL ICQ Skype YIM   Вверх
EuGenius_Krivbass
Дата 9.4.2008, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 29.1.2007
Где: Кривбасс, Днепр Украина

Репутация: нет
Всего: нет



Это просто УЖАС!!!!!

так не работает(для кнопки KeyDown):
Код

gvPeople.SelectionMode = DataGridViewSelectionMode.FullRowSelect;

if (gvPeople.SelectedCells.Count >0)
                selectedRowIndex = gvPeople.SelectedCells[0].RowIndex;
//...заполняем
if (selectedRowIndex > 0 && selectedRowIndex < gvPeople.Rows.Count)
                gvPeople.Rows[selectedRowIndex].Selected = true;



а так все прекрасно работает, [censored 6]:
Код

//...заполняем
if (selectedRowIndex > 0 && selectedRowIndex < gvPeople.Rows.Count)
                gvPeople.Rows[selectedRowIndex].Cells[0].Selected = true;



Это сообщение отредактировал(а) EuGenius_Krivbass - 9.4.2008, 18:29
PM MAIL ICQ Skype YIM   Вверх
IApple
Дата 10.4.2008, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 17.1.2008

Репутация: нет
Всего: нет



1) Вообще страные вопросы у Вас... Не пойму зачем что-либо высчитывать при нажатии Down, если по условию (после новой загрузки) необходимо просто выделить ПОСЛЕДНЮЮ из загруженых в грид?
2) 1 зашита не в вашем коде, а в гриде - ваша "перезагрузка" даных вынуждает его сбросить Selected в 0, после чего обрабатывается Down увеличением этого нуля на 1...
PM MAIL   Вверх
EuGenius_Krivbass
Дата 11.4.2008, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 29.1.2007
Где: Кривбасс, Днепр Украина

Репутация: нет
Всего: нет



Цитата(IApple @  10.4.2008,  08:27 Найти цитируемый пост)
необходимо просто выделить ПОСЛЕДНЮЮ из загруженых в грид?

как раз последняя и выделяется после того, как загружен грид, но выделение сбрасывается на 1(согласен с тем, что может быть реакция на Down)

PM MAIL ICQ Skype YIM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0697 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.