powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как установить фокус в XtraGrid на группе строк?
3 сообщений из 3, страница 1 из 1
Как установить фокус в XtraGrid на группе строк?
    #38293668
Babay2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!
Вообщем ситуация следующая.

Есть источник данных (dt = new DataTable() )
Есть GridView. Ему на вход дан dt. Он сгруппирован по каким то колонкам.


фокус стоит не на строке .. а на одной из групп....

После добовления новой записи dt.. снова пердаем : gridcontrol1.DataSourde = dt; (так надо по условию поставленной задачи)

После этого фокус становиться в 1-ю позицию((

Я могу установить фокус на конкретную строку уже в "несгруппированых строках".. а на группированные поставить не могу(((

Что я делал:

//ДО ДОБАВЛЕНИЯ НОВОЙ ЗАПИСИ В Таблицу запоминаем предідущие указатели!!

int rowHandle = gridView1.FocusedRowHandle; // получил указатель строки

if (gridView1.IsGroupRow(rowHandle)) // проверил если GROUP
{
currentRow = gridView1.GetDataRowHandleByGroupRowHandle(rowHandle); // получил указатель группы

}
gridControl1.DataSource = dt; //заполнили грид



А после этого:
gridView1.FocusedRowHandle = currentRow;

Но вот тут неверно( Указатель становиться не на группу а на первую строку в той группе которая изначально была выделена..((

Что я делаю не так? подскажите? как установить указатель на саму строку группы...

Заранее спасибо
...
Рейтинг: 0 / 0
Как установить фокус в XtraGrid на группе строк?
    #38293967
Фотография aleks-sam
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вот не помню, попробуй передать в функцию выделения строки отрицательное значение (начиная с -1 и так далее)
...
Рейтинг: 0 / 0
Как установить фокус в XtraGrid на группе строк?
    #38294388
Babay2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
та все. разобрался...
все равно надо в фокус передавать значение.. строки...
обычные строки - это нумерация с 1... n
а группированные строки это нумерация с -1... -n

вообщем код такой:

int rowHandle = gridView1.FocusedRowHandle;
DataRow row = gridView1.GetDataRow(rowHandle); // потом расскажу зачем))
gridControl1.DataSource = dt;

if (gridView1.IsGroupRow(rowHandle)) //если группированые строки
{
gridView1.FocusedRowHandle = rowHandle
}
else // если не обычная строка то делаем такой код
//просто сделать gridView1.FocusedRowHandle = rowHandle; нельзя... т.к.
// он не учитывает сортировку в dt
//и в rowHandle - попадет не то значение...
//поєтому делаем так (field6 - уникальное поле в dt)
{
int x = 0;
foreach (DataRow dr in dt.Select("","field6"))
{

if (dr["field6"].ToString() == row["field6"].ToString()) { break; }
x++;

}
gridView1.FocusedRowHandle = x;

}


ps. возникает еще неудобство(...
после перерисовки грида - курсо то становится на нужное место... но.... все ранее развернутые строки (в группах) - были снова СВЕРНУТЫ...(
как запомнить состояние развернытых групп строк?
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как установить фокус в XtraGrid на группе строк?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]