Windowsフォームでは、データ処理を処理するための3つの列と少数のボタンを備えたグリッドビューがあります。グリッドは編集可能で、編集モードでユーザーが「Enter」キーを押すたびに、現在の行の次のセルにフォーカスを移動するために、以下のコードを使用しています。ボタンクリックしないクリックしないCellEndEditのDataGridViewでフォーカスが次のセルに設定されている場合
private void dataGridView_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex != dataGridView.Columns.Count - 1)
{
this.BeginInvoke(new MethodInvoker(() =>
{
dataGridView.CurrentCell = dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex + 1];
}));
}
}
コードは正常に動作し、必要に応じてフォーカスを次のセルに移動しています。しかし、問題は、グリッドのセルがフォーカスされている間にボタンをクリックすると発生します。フォーカスが特定のセルにあるので、ボタンをクリックすると、CellEndEditイベントが発生します。ボタンをクリックすると、ボタンのイベントが発生し、コードの結果、次のセルにフォーカスが移動し、ボタンのクリックがまったく発生しません。 CellEndEdit関数の次のセルに移動するように記述されたコードがボタンをクリックしたときに起きないようにしたい。
- 編集のGridViewのセル、次のセルに移動し焦点を当て、Enterキーを押す - 次のセルにフォーカスが移動、いずれかのボタンをクリックして、正しい
- 編集のGridViewで呼び出しは、ボタンのクリックイベントは発生しません - 問題
私はこの問題に関してSOとインターネットで多くを検索しましたが、永続的な解決策を見つけることができませんでした。どんな助けでも大歓迎です。
を私は非常にあなたを理解していません'CellBeginEdit'では' CellEndEdit'の値が同じであれば、次のセルに移動しないでください。 – Pikoh
問題は次のセルに移動することではなく、問題はフォーム上の任意のボタンをクリックすると、gridviewがCellEndEditを起動し、コードが次のセルに移動します。ボタンのクリックはまったく実行されません。私は今私の質問に詳細を追加しました。 – Nitesh