powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / редактирование строки в DataGridView
14 сообщений из 14, страница 1 из 1
редактирование строки в DataGridView
    #38157860
Vova_1805
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DataGridView1 Содержит 2000 записей (строк). После редактирования 2000-ой строки указатель в контроле DataGridView поставлен на нолевую строку. Как его вернуть на редактируемую строку? Чтобы пользователь видел результат, а не искал Где же эта строка, в которую я внёс только-что изменения.
В переменной iCurrentRow сохраняю Номер выбранной
строки в DataGridView1 для редактирования ( внесения изменений )
Код: vbnet
1.
Dim iCurrentRow As Integer = DataGridView1.SelectedCells(0).RowIndex() 


После внесения изменений в столбцы выбранной строки
Хочу вернуться на редактируемую строку, для этого ставлю
Код: vbnet
1.
DataGridView1.Rows(iCurrentRow).Cells(0).Selected = True 


курсор (указатель мыши) становится в
ячейку в НОЛЕВОЙ строке, вместо той строки, номер которой указан в
переменной iCurrentRow
СПАСИБО.
...
Рейтинг: 0 / 0
редактирование строки в DataGridView
    #38158048
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Надо через BindingSource.
Ловить первичный ключ для вновь созданой записи и переходить к нему
...
Рейтинг: 0 / 0
редактирование строки в DataGridView
    #38158480
Nicky_N
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vova_1805DataGridView1 Содержит 2000 записей (строк).
немножко оффтоп, но все же, имхо, 2000 строк как-то многовато для DataGridView.
...
Рейтинг: 0 / 0
редактирование строки в DataGridView
    #38158835
sld
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sld
Гость
использовать FirstDisplayedCell или FirstDisplayedScrollingRowIndex попробовать.
...
Рейтинг: 0 / 0
редактирование строки в DataGridView
    #38161246
Vova_1805
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По-моему, эта проблема нерешаема?
Ваши советы я применил, ставил в разных местах приложения,
Но после обновления указатель в гриде УПОРНО становится в ячейку 0,0.
...
Рейтинг: 0 / 0
редактирование строки в DataGridView
    #38161419
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Vova_1805По-моему, эта проблема нерешаема?

Решаема
Cat2Надо через BindingSource.
Ловить первичный ключ записи и переходить к нему
...
Рейтинг: 0 / 0
редактирование строки в DataGridView
    #38161673
фиганыч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vova_1805,

храни первичный ключ например в скрытой колонке в в гриде, и после редактирования ищи эту строку например вот так
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
DataGridViewRow Row = DataGridView1.Rows.Cast<DataGridViewRow>().Where(a=> a.cell["id"].Value == id_строки).FirstOrDefault();
if (Row != null)
{
  Row.Selected = true;
  // следующие 3 строки сохранят позицию редактируемой строки относительно грида
  i = Row.Index - (сохранённый_перед_редактированием_индекс_строки - сохранённый_перед_редактированием_FirstDisplayedScrollingRowIndex);
  if (i < 0)
    i = 0;
  DataGridView1.FirstDisplayedScrollingRowIndex = i;
}
...
Рейтинг: 0 / 0
редактирование строки в DataGridView
    #38162135
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vova_1805,

используешь ли ты BindingSource
если нет обязательно используй
не лазий по гриду, а ищи нужные тебе данные в BindingSource
...
Рейтинг: 0 / 0
редактирование строки в DataGridView
    #38162138
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
фиганычVova_1805,

храни первичный ключ например в скрытой колонке в в гриде, и после редактирования ищи эту строку например вот так
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
DataGridViewRow Row = DataGridView1.Rows.Cast<DataGridViewRow>().Where(a=> a.cell["id"].Value == id_строки).FirstOrDefault();
if (Row != null)
{
  Row.Selected = true;
  // следующие 3 строки сохранят позицию редактируемой строки относительно грида
  i = Row.Index - (сохранённый_перед_редактированием_индекс_строки - сохранённый_перед_редактированием_FirstDisplayedScrollingRowIndex);
  if (i < 0)
    i = 0;
  DataGridView1.FirstDisplayedScrollingRowIndex = i;
}



такой г-код на помойку
...
Рейтинг: 0 / 0
редактирование строки в DataGridView
    #38164332
фиганыч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pation,

нормальный код - задачу решает.
...
Рейтинг: 0 / 0
редактирование строки в DataGridView
    #38165106
Vova_1805
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПОСЛЕ ПРЕОБРАЗОВАНИЯ Вашего кода TO VB NET имеем:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Dim Row As DataGridViewRow = DataGridView1.Rows.Cast(Of DataGridViewRow)().Where(Function(a) a.cell("id").Value = id_строки).FirstOrDefault()
If Row IsNot Nothing Then
 Row.Selected = True
 ' следующие 3 строки сохранят позицию редактируемой строки относительно грида
 i = Row.Index - (сохранённый_перед_редактированием_индекс_строки - сохранённый_перед_редактированием_FirstDisplayedScrollingRowIndex)
 If i < 0 Then
  i = 0
 End If
 DataGridView1.FirstDisplayedScrollingRowIndex = i
End If



Не сложно ли Вам детализировать віражение в верхней строке
Where(Function(a) a.cell("id").Value = id_строки).FirstOrDefault()
СПАСИБО
...
Рейтинг: 0 / 0
редактирование строки в DataGridView
    #38165741
фиганыч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vova_1805ПОСЛЕ ПРЕОБРАЗОВАНИЯ Вашего кода TO VB NET имеем:
Не сложно ли Вам детализировать віражение в верхней строке
Where(Function(a) a.cell("id").Value = id_строки).FirstOrDefault()
СПАСИБО

Детализировать... ну могу по другому записать, по старинке:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
DataGridViewRow Row = null;
for (int i = 0; i < DataGridView1.Rows.Count;i++)
{
  if (DataGridView1.Rows[i].Cell["id"].Value == id_строки)
  {
    Row = DataGridView1.Rows[i];
    break;
  }
}
...
Рейтинг: 0 / 0
редактирование строки в DataGridView
    #38168454
WitC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pationVova_1805,

используешь ли ты BindingSource
если нет обязательно используй
не лазий по гриду, а ищи нужные тебе данные в BindingSource

перемещаться по строкам грида можно с помощью CurrentCell (пример в приложении),
но правильный вариант - BindingSource
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
редактирование строки в DataGridView
    #38636918
darvin117
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vova_1805,
не могли бы вы скинуть код, как вы открываете в новой форме нужную вам строку для дальнейшего редактирования? Буду премного благодарен!
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / редактирование строки в DataGridView
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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