セルでホストされるカスタムコントロールであるカスタムdatagridviewcolumnがあります。プログラムで編集モードを終了し、セルの現在の値を検証したい(この値は正しい)。以下の方法を確認しましたが、成功しませんでした。
this.datagridview.currentCell.datagridview.endEdit()
this.EditingControlDataGridView.endEdit()
this.datagridview.endEdit();
また、現在のセルを強制的に変更することによって:
this.datagridview.currentCell = this.datagridview.Rows[rowIndex].Cells[columnIndex]
たとえば、datagridviewの行を削除する必要があるが、(削除される同じ行の)セルが編集モードであるため、セル内の保留中の値のコミットをプログラムで強制する必要があります。セルの変更をコミットせず、前に編集モードを終了した場合。
また、編集モードを終了したいときに同様の奇妙な動作がありますが、この場合、セル内の変更を破棄します。アプリケーションの状態によっては、this.datagridview.CancelEdit()を実行する場合と機能しない場合があります。
C#、. NET Framework 4.0、WinFormsを使用します。