|
перемещение по DataGridView
|
|||
---|---|---|---|
#18+
подскажите как написать, чтобы в DataGridView по Enter перемещение происходило не к следующей строке, а к соседней ячейке в этом же ряду ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2006, 08:56 |
|
перемещение по DataGridView
|
|||
---|---|---|---|
#18+
Нужно обрабатывать событие 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, то помимо бокового смещения выделение будет прыгать и вниз тоже. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2006, 10:46 |
|
перемещение по DataGridView
|
|||
---|---|---|---|
#18+
Спасибо, действительно работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2006, 11:05 |
|
перемещение по DataGridView
|
|||
---|---|---|---|
#18+
Вышеуказанный вариант работает, если просто перемещаться по гриду, а если нажать ENTER после редактирования ячейки, то курсор опять уходит вниз. Как быть в этой ситуации ? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2006, 11:33 |
|
перемещение по DataGridView
|
|||
---|---|---|---|
#18+
ZivertВышеуказанный вариант работает, если просто перемещаться по гриду, а если нажать ENTER после редактирования ячейки, то курсор опять уходит вниз. Как быть в этой ситуации ? СеллЧанджед? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2006, 12:30 |
|
перемещение по DataGridView
|
|||
---|---|---|---|
#18+
ZivertВышеуказанный вариант работает, если просто перемещаться по гриду, а если нажать ENTER после редактирования ячейки, то курсор опять уходит вниз. Как быть в этой ситуации ? Вы знаете... Мне кажется это связано с механизмом обработки событий типа Key... в этом ДОЛБАНОМ Гриде. Просто когда этот ДОЛБАННЫЙ (уж извините) грид переходит в режим редактирования, то в его недрах перестают отрабатываться события типа Key... и ето правильно!, но! почему-то при выходе из режима редактирования этот "..." Грид сначала выполняет свое любимое действие по KeyDown, а потом только восстанавливает event-ы, навешанные программистом. Действительно обрабатывать CellChanged только остается. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2006, 01:27 |
|
перемещение по DataGridView
|
|||
---|---|---|---|
#18+
Хнык ZivertВышеуказанный вариант работает, если просто перемещаться по гриду, а если нажать ENTER после редактирования ячейки, то курсор опять уходит вниз. Как быть в этой ситуации ? СеллЧанджед? CellChanged - имеется в виду CurrentCellChanged? И что там делать - вручную перемещать текущую ячейку? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2007, 21:11 |
|
перемещение по DataGridView
|
|||
---|---|---|---|
#18+
Я вышел так 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; } ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2016, 20:01 |
|
|
start [/forum/topic.php?fid=20&gotonew=1&tid=1400752]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
9ms |
get first new msg: |
7ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 153ms |
0 / 0 |