Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / перемещение по DataGridView / 9 сообщений из 9, страница 1 из 1
26.12.2006, 08:56
    #34224117
Zivert
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перемещение по DataGridView
подскажите как написать, чтобы в DataGridView по Enter перемещение происходило не к следующей строке, а к соседней ячейке в этом же ряду
...
Рейтинг: 0 / 0
26.12.2006, 10:46
    #34224396
Alexsalog
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перемещение по DataGridView
Нужно обрабатывать событие 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
26.12.2006, 11:05
    #34224474
Zivert
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перемещение по DataGridView
Спасибо, действительно работает.
...
Рейтинг: 0 / 0
26.12.2006, 11:33
    #34224606
Zivert
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перемещение по DataGridView
Вышеуказанный вариант работает, если просто перемещаться по гриду, а если нажать ENTER после редактирования ячейки, то курсор опять уходит вниз.
Как быть в этой ситуации ?
...
Рейтинг: 0 / 0
26.12.2006, 12:30
    #34224806
Хнык
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перемещение по DataGridView
ZivertВышеуказанный вариант работает, если просто перемещаться по гриду, а если нажать ENTER после редактирования ячейки, то курсор опять уходит вниз.
Как быть в этой ситуации ?
СеллЧанджед?
...
Рейтинг: 0 / 0
27.12.2006, 01:27
    #34226540
Alexsalog
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перемещение по DataGridView
ZivertВышеуказанный вариант работает, если просто перемещаться по гриду, а если нажать ENTER после редактирования ячейки, то курсор опять уходит вниз.
Как быть в этой ситуации ?

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

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

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
05.03.2016, 20:07
    #39186545
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перемещение по DataGridView
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / перемещение по DataGridView / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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