私はでプログラムに取り組んでいDataGridViews
ます。1つには、ユーザーが編集できるようにするがありますDatagridView
。DataGridViewTextBoxColumn
ユーザーが数字の入力を終えたら、キーボードのEnterキーを押します。これでDataGridView
すべてが実行Events
され、結局のところEvents
、最後に問題が発生します。
すべてが完了し、Windowsが次を選択する予定DataGridViewRow
です。これを防ぐことはできません。
私は試した
if (e.KeyData == Keys.Enter) e.SuppressKeyPress = true; // or e.Handled
私が見つけたほぼすべてのイベントで。残念ながらDataGridViewTextBoxColumn
、編集モードでない場合にのみ、ENTERキーを防ぐことができました。
編集中にENTERを見つける方法は次のとおりです
イベントの追加
private void dgr_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
e.Control.KeyPress += new KeyPressEventHandler(dgr_KeyPress_NumericTester);
}
そして、これは数値入力のみを受け入れるイベントです。
private void dgr_KeyPress_NumericTester(object sender, KeyPressEventArgs e)
{
if (!Char.IsDigit(e.KeyChar) && e.KeyChar != 8) e.Handled = true;
}
詳細に説明するには:
ユーザーがいくつかの依存関係がある値を入力すると、別のコントロールにフォーカスを与えたいので、彼は依存関係を修正するために使用されます。
私も試してみましたDependingControl.Focus()
が、最後の「エンター」がビューの最後になります。
誰かがこれを防ぐ方法を知っていますか?