Здравствуйте, mill, Вы писали:
M>Добрый день, пытаюсь написать обработку фокуса в табличке
M>m,n — глобальные переменные
M>n = ColumnCount — 1;
M>m = RowCount — 1;
M>...
M>private: System::Void PolynomTable_CellLeave(System::Object^ sender, System::Windows::Forms::DataGridViewCellEventArgs^ e) {
M> int k1 = e->ColumnIndex;
M> int k2 = e->RowIndex;
M> if (k1 == n) //
M> {
M> if (k2 < m) PolynomTable->CurrentCell::set(PolynomTable[0,k2+1]);
M> }
M> else
M> {
M> PolynomTable->CurrentCell::set(PolynomTable[k1+1,k2]);
M> }
M> }
M>компиляция работает, всё норм, а при вводе любой ячейки получаю StackOverFlowException.
M>Опытные программисты, подскажите что здесь сделано не так?
---------------------------------------------------------------
В общем понял что CellLeave плохое событие для данной идеи.
Лучше подходит какой нибудь CellEndEdit.
Хотя ничего не получается, по нажатии Enter вдобавок к обработке события ещё и спускается вниз,
получается ход по диагонали.
Пришёл к выводу что проще пользоваться Tab и будет всё как задумывал.