トップ回答者
DataGridViewにEnterキーを自動押下させる方法。

質問
回答
-
イベントハンドラの名前が DataGridView_AfterUpdate というだけで、イベント自体は CellEndEdit や RowValidating や RowLeave だったりする可能性もあるかなと思いました。
(もしそうでしたら、実際はどのイベントでしょうか?)
セル(項目)の編集完了は DataGridView.EndEdit メソッドでできます。
(ちなみに、前スレッドでの私の1つ目のコードでは、手入力っぽくするためにあえて EndEdit を実行していませんでした。)
行の変更を確定する方法でしたら、
DataGridView.IsCurrentRowDirty の説明に、次の3つの方法が書かれていました。
もしイベントが RowValidating の場合には3番目では発生しませんので、その場合は2番目がいいと思います。
1. Ctrl+Enter を押す。
2. フォームの Validate メソッドを実行する。
3. BindingSource の EndEdit メソッドを実行する。- 回答としてマーク TAKAPI 2010年11月7日 1:34
すべての返信
-
>そのあと自動でEnterを押させたいのですがいい方法ありますでしょうか?
単純にアプリケーションにENTERキーを送る方法は以下のようにして実現できます。
SendKeys.SendWait("{ENTER}")
しかしながら、TAKAPIさんが行ないたい処理がどういったことなのかなのですが、
憶測ですが、最終行のセルにカーソルを移動したということでしょうか?
そうであるなら、SendKeysを利用せず、以下のようにする方がよいです。
DataGridView1.CurrentCell = DataGridView1(DataGridView1.CurrentCell.ColumnIndex, DataGridView1.RowCount - 1)
-
確認ですが、今使われている「DataGridView」は、.NET Framework標準のものですか?
それとも無償又は有償のベンダー製品のことを指していますか?
.NET Framework標準の「DataGridView」にはAfterUpdateという名称のイベントは
ないようです。
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.datagridview_events(v=VS.100).aspx
そもそも.NET Frameworkで開発されていますか?
VB6.0だったりしますか?
-
イベントハンドラの名前が DataGridView_AfterUpdate というだけで、イベント自体は CellEndEdit や RowValidating や RowLeave だったりする可能性もあるかなと思いました。
(もしそうでしたら、実際はどのイベントでしょうか?)
セル(項目)の編集完了は DataGridView.EndEdit メソッドでできます。
(ちなみに、前スレッドでの私の1つ目のコードでは、手入力っぽくするためにあえて EndEdit を実行していませんでした。)
行の変更を確定する方法でしたら、
DataGridView.IsCurrentRowDirty の説明に、次の3つの方法が書かれていました。
もしイベントが RowValidating の場合には3番目では発生しませんので、その場合は2番目がいいと思います。
1. Ctrl+Enter を押す。
2. フォームの Validate メソッドを実行する。
3. BindingSource の EndEdit メソッドを実行する。- 回答としてマーク TAKAPI 2010年11月7日 1:34