В Java все находится в форме класса.
Если вы хотите использовать любой объект, тогда у вас есть две фазы:
Пример:
Object a;
a=new Object();
То же самое для концепции массива
Item i[]=new Item[5];
i[0]=new Item();
Если вы не дают секцию инициализации, тогда возникает NullpointerException
.
Эта ошибка вызвана
Любая операция, которая приводит к изменению активной ячейки, когда DataGridView все еще ее использует
blockquote>Как принято в этой записи .
Исправление (я проверил): используйте
BeginInvoke
для вызоваmoveRowTo
.private void dataGridView2_CellEndEdit(object sender, DataGridViewCellEventArgs e) { this.BeginInvoke(new MethodInvoker(() => { moveRowTo(dataGridView2, 0, 1); })); }
BeginInvoke
является асинхронным вызовом, поэтомуdataGridView2_CellEndEdit
возвращается немедленно, и после этого выполняетсяmoveRowTo
метод, в то времяdataGridView2
больше не использует текущую активную ячейку ,
if (
(datagridview.SelectedCells[0].RowIndex != datagridview.CurrentCell.RowIndex) ||
(datagridview.SelectedCells[0].ColumnIndex!= datagridview.CurrentCell.ColumnIndex)
) { return; }