0

WinForm 内に Gridview があります。編集するそのグリッドビューの列があります。セル編集をクリックして Enter キーを押すと、最後の行を除くすべてのセルの編集が完了します。変更する行が下にない場合、「Enter」キーは何もしません。_keyPress および _keyDown イベントを使用して、「Enter」キーをタブに変更しようとしました。これにより、ユーザーは通常どおり編集し、Enter キーを押して変更を送信できます。

誰かが何か意見があれば、私はそれを感謝します。

また、現在、セルを選択すると編集モードになり、セルが選択されなくなると、 endedit イベントを呼び出して変更を送信します。

EditingControlShowingEvent を追加しようとしましたが、以下のコードは、キーダウン イベントを呼び出すことを期待して、編集中のコントロールにイベントを割り当てようとしました。しかし、まだそうではありませんでした。

private void dg_EditingControlSHowing(object sender,DataGridViewEditingControlShowingEventArgs e)
{
e.Control.KeyDown += new KeyEventHandler(Control_KeyDown);
}                                                              
private void Control_KeyDown(object sender, KeyEventArgs e)
{
if(e.KeyData == Keys.Enter)
{
 this.ProcessTabKey(true);
}
}
4

1 に答える 1

0
if(e.KeyData == Keys.Enter)
{
this.ProcessTabKey(true);
  if(datagrid1.Rows[grid.Rows.Count - 1].Selected == true){
    //run your event here
  }
}

これは私が思いつくことができる唯一のことについてです。最後の行が選択されていることを確認して、別のプロセスを実行できるようにします。たとえば、そのビットに到達したときに新しい行を追加できるようにします。

それがあなたに必要なものであるかどうかは100%わかりませんが、それが方法に役立つか、あなたにアイデアを与えることを願っています

于 2012-05-27T14:05:45.667 に答える