powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / перемещение по DataGridView
9 сообщений из 9, страница 1 из 1
перемещение по DataGridView
    #34224117
Zivert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
подскажите как написать, чтобы в DataGridView по Enter перемещение происходило не к следующей строке, а к соседней ячейке в этом же ряду
...
Рейтинг: 0 / 0
перемещение по DataGridView
    #34224396
Alexsalog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно обрабатывать событие KeyDown
Именно KeyDOWN!

private void OnKeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
int r = this.CurrentCell.RowIndex;
int c = this.CurrentCell.ColumnIndex;
c++;
if (c >= this.Columns.Count) { c = 0; r++; }
this.CurrentCell = this.Rows[r].Cells[c];
e.Handled = true; // важно
}
}

Сам проверил код - работает.
Если навешивать на KeyUp или KeyPerss, то помимо бокового смещения выделение будет прыгать и вниз тоже.
...
Рейтинг: 0 / 0
перемещение по DataGridView
    #34224474
Zivert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, действительно работает.
...
Рейтинг: 0 / 0
перемещение по DataGridView
    #34224606
Zivert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вышеуказанный вариант работает, если просто перемещаться по гриду, а если нажать ENTER после редактирования ячейки, то курсор опять уходит вниз.
Как быть в этой ситуации ?
...
Рейтинг: 0 / 0
перемещение по DataGridView
    #34224806
Фотография Хнык
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZivertВышеуказанный вариант работает, если просто перемещаться по гриду, а если нажать ENTER после редактирования ячейки, то курсор опять уходит вниз.
Как быть в этой ситуации ?
СеллЧанджед?
...
Рейтинг: 0 / 0
перемещение по DataGridView
    #34226540
Alexsalog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZivertВышеуказанный вариант работает, если просто перемещаться по гриду, а если нажать ENTER после редактирования ячейки, то курсор опять уходит вниз.
Как быть в этой ситуации ?

Вы знаете... Мне кажется это связано с механизмом обработки событий типа Key... в этом ДОЛБАНОМ Гриде. Просто когда этот ДОЛБАННЫЙ (уж извините) грид переходит в режим редактирования, то в его недрах перестают отрабатываться события типа Key... и ето правильно!,
но! почему-то при выходе из режима редактирования этот "..." Грид сначала выполняет свое любимое действие по KeyDown, а потом только восстанавливает event-ы, навешанные программистом.
Действительно обрабатывать CellChanged только остается.
...
Рейтинг: 0 / 0
перемещение по DataGridView
    #34263066
alexb_mpx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хнык ZivertВышеуказанный вариант работает, если просто перемещаться по гриду, а если нажать ENTER после редактирования ячейки, то курсор опять уходит вниз.
Как быть в этой ситуации ?
СеллЧанджед?

CellChanged - имеется в виду CurrentCellChanged? И что там делать - вручную перемещать текущую ячейку?
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
перемещение по DataGridView
    #39186542
Glebded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я вышел так

private int rowEdit;
private int colEdit;
.......
colEdit = -1;
rowEdit = -1;
EditingControlShowing += NewDataGrid_EditingControlShowing;
SelectionChanged += NewDataGrid_SelectionChanged;
.......
private void NewDataGrid_SelectionChanged(object sender, EventArgs e)
{
if (colEdit == -1) return;

var c = colEdit;
var r = rowEdit;
colEdit = -1;
rowEdit = -1;

CurrentCell = this[c, r];
}

private void NewDataGrid_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if (CurrentCell.EditType != typeof(DataGridViewTextBoxEditingControl)) return;

rowEdit = CurrentCell.RowIndex;
colEdit = CurrentCell.ColumnIndex;
}
...
Рейтинг: 0 / 0
перемещение по DataGridView
    #39186545
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / перемещение по DataGridView
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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