- - PR -
データグリッドでF5ボタンの捕捉
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-12-29 12:53
データグリッドのセルがアクティブな状態で
F5キーを捕捉出来なくて困っています。 検索したときにいくつか似たような物が見つかったのですが 解決に至っていないようなので新しく投稿します。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=8475&forum=7 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=13913&forum=7&4 開発環境は .NetFramwork1.1, WindowsForm, VisualStudio.2003 で開発しています。 データグリッドが配置されてなかったり、 配置されていたとしてもセルがアクティブな状態でない場合は 問題なくF5キーを捕捉できています。 Form の KeyPreview は True に設定し Form の KeyDown イベント時に e.KeyCode の値を調べ 押されたキーを判断しています。 よろしくお願いします。 | ||||||||
|
投稿日時: 2005-12-29 13:01
追記です。
ためしに DataGrid を継承したコントロールをフォームに配置したところ ProcessCmdKey イベントのタイミングでは F5キー を捕捉出来るところまでは確認しています | ||||||||
|
投稿日時: 2005-12-29 14:09
DataGridTableStyle から DataGridTextBoxColumn を取って、
TextBox に対してハンドラを生成すれば可能? DataGridのセル内でのキーイベントを捕捉する セルがアクティブだと、できないような気がするんですよね。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2005-12-29 14:30
こんにちわ じゃんぬねっと さん
お返事ありがとうございます。 どぼんさん の所のサンプルを試してみましたが やはり F5キー だけは KeyDown を捕捉できませんでした・・・ F5キーを押されたタイミングで データグリッド の内容を 再検索するような動きをつくりたかったんですが、 他に方法がないか考えて見ます。 | ||||||||
|
投稿日時: 2005-12-29 14:42
なんか無理やりですが・・・
こんなのでいいのかな・・・
[ メッセージ編集済み 編集者: かるあ 編集日時 2005-12-29 14:44 ] | ||||||||
|
投稿日時: 2005-12-29 15:11
実現できているならば、別に良いとは思いますが、 イベント名からして、WM_KEYUP は余分じゃないですか? それと、keyData はそのままイベント側に送る方が素直な気がします。 イベント側で余計なものは排除すべきかと。 # 通常は、IsInputKey メソッドを通してから送るのが適切なんですが、 # プロセス キーが取得できなくなりますからね。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2005-12-29 15:22
こんにちわ じゃんぬねっと さん
お返事ありがとうございます。
確かにそのとおりですね、WM_KEYDOWN だけ聞くようにします。
そのまま送るというと、どういうことでしょう イベントの仮引数のことですか? ByVal args As Keys → ByVal keyData As Keys にすればいいのかな? [ メッセージ編集済み 編集者: かるあ 編集日時 2005-12-29 22:03 ] | ||||||||
|
投稿日時: 2005-12-29 15:47
といっても、厳密には WM_KEYDOWN も本来は不要だったり。(^-^;)
そうですね、keyData とした方が素直です。 KeyEventArgs で送るならば「e」ですね。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
1