現時点ではthis.EndInvoke(this.BeginInvoke(new MethodInvoker( this.resortRows )));
、空のセルをチェックして DGV を並べ替えるメソッドを呼び出すために使用しています。しかし、CellEndEdit からこれを呼び出しています。
Enter キーまたは Tab キーを押してイベントが呼び出された場合はすべて正常に動作しますが、EditMode のままで別のセルをクリックすると、並べ替えコマンドの行でエラーが発生します。
Operation is not valid because it results in a reentrant call to the SetCurrentCellAddressCore function.
これは並べ替えコマンドです。
this.dataGridView1.Sort(this.dataGridView1.Columns[2], ListSortDirection.Ascending);
私はこのようなイベントを処理しようとしましたMouseClick
:
private void dataGridView1_MouseClick(object sender, MouseEventArgs e)
{
this.dataGridView1.EndEdit();
}
しかし、これは灰色の領域の DGV 内をクリックした場合にのみ機能します (セルやヘッダーではありません)。どうすればこれを修正できますか?