Для задания мы создаем простую программу для работы с электронными таблицами, аналогичную Excel. Ячейки в моем DataGridView редактируются пользователем, и несколько вещей происходят, когда пользователь редактирует ячейку. Как и Excel, если вы должны были ввести =A1
в ячейку A2, значение A2 изменится на значение ячейки A1 и текст, который пользователь видит обновления, чтобы отразить это. Однако свойство текста A2 должно оставаться =A1
в случае изменения значения A1. Во время отладки моего кода я заметил, что моя функция CellEndEdit
повторялась дважды, хотя в ней нет петель.Winforms DataGridView CellEndEdit Loops
private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
RealCell cell = spreadsheet.GetCell(e.RowIndex, e.ColumnIndex) as RealCell;
//set the spreadsheet cell's text to reflect the user's edit
if (dataGridView1.CurrentCell.Value != null)
{
cell.Text = dataGridView1.CurrentCell.Value.ToString();
}
MenuVisibility();
}
Это большая проблема, потому что она сбрасывает текст ячейки раз и навсегда. Есть CellEndEdit
функции, которые должны проходить через два раза? Как я могу остановить это? Благодаря!
Вы уверены, что оба события CellEndEdit для одной и той же ячейки? Кроме того, есть ли вероятность, что вы добавляете метод к событию 'CellEndEdit' более одного раза? –