перейти на заданную ячейку в датагридвью

Kommunar
Дата: 24.12.2009 18:11:09
Доброго времени.
есть след проблема:
есть датагридвью, в котором при покидании первой ячейки необходимо чтобы курсор или выделение попало не на следующую ячейку а через одну в текущем рядке.

ниже код

       private void dataGridView1_CellLeave(object sender, DataGridViewCellEventArgs e)
        {
            DataGridViewCell dgwc = dataGridView1[2, e.RowIndex];
            dataGridView1.CurrentCell = dgwc;
        }

выдается ошибка

StackOverflowException was unhandled
Как победить?
Спасибо.
vagner
Дата: 24.12.2009 18:24:13
Навскидку - Вы вот этим своим действием
dataGridView1.CurrentCell = dgwc;
случайно, не генерируете событие CellLeave. Ну и так далее, вплоть до переполнения стека.
Как бороться? В обработчике сначала отключите обработку события CellLeave, а в конце - подключите опять.
Kommunar
Дата: 24.12.2009 18:26:10
Я тоже к этому склоняюсь.
Не силен в отключении и подключении, можно какой нить кусочек кода?
Kommunar
Дата: 24.12.2009 18:41:17
            dataGridView1.CellLeave -= new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView1_CellLeave);
            dataGridView1.CurrentCell = dataGridView1.CurrentRow.Cells[2];
            dataGridView1.CellLeave += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView1_CellLeave);
попробовал так, вообще ничего не происходит.
Cat2
Дата: 24.12.2009 21:52:00
Kommunar,

засуньте это перемещение в событие validated
vagner
Дата: 25.12.2009 10:10:13
Kommunar
попробовал так, вообще ничего не происходит.


С подключением/отключением справились, а вот почему ничего не происходит (видимо, имеется в виду, что не происходит ожидаемого поведения) попробуйте разобраться с помощью отладчика.
Kommunar
Дата: 25.12.2009 11:04:46
Cat2
Kommunar,

засуньте это перемещение в событие validated


Таже ошибка что и в cellleave
Kommunar
Дата: 25.12.2009 11:13:40
vagner
Kommunar
попробовал так, вообще ничего не происходит.


С подключением/отключением справились, а вот почему ничего не происходит (видимо, имеется в виду, что не происходит ожидаемого поведения) попробуйте разобраться с помощью отладчика.


Все правильно, ожидаемого эффекта не достигнуто.
Обработчик показывает, что все нормально функционирует но координаты ячейки нивкакую не изменяются, такое ощущение что проблема в currentcell, не все так просто там наверно.

Может еще какие нить идею по установлению фокуса в конкретную ячейку есть?