- 題名: ListViewのキー操作キャンセルについて
- 日時: 2012/01/26 18:05:42
- ID: 29687
- この記事の返信元:
- (なし)
- この記事への返信:
- [29691] Re[1]: ListViewのキー操作キャンセルについて2012/01/27 4:32:33
- ツリーを表示
2012/01/30(Mon) 18:05:01 編集(投稿者) ■No29717に返信(るいさんの記事) > お世話になります。 > 試してみまたのですが、KeyDownイベントがそもそも発生していません。矢印キーについてはKeyDownを発生させることはできないのでしょうか。 特別な事はせずに新規プロジェクトで KeyDown イベントのコードだけ 書いて確認しましたが、問題なくイベントが起こっていることを確認 できました。 private void listView1_KeyDown(object sender, KeyEventArgs e) { Console.WriteLine(e.KeyCode); } [出力] >Down >Up >Left >Right
分類:[.NET]
お世話になります。
ある条件が成立する場合、ListView(詳細表示モード)で上下矢印キーを押しても選択アイテムが変更がされないようにしたいのですが、可能でしょうか?
ListViewの詳細表示モードにおいて、矢印の上下キーを押したことはPreviewKeyDownイベントで検出できました。
-------------------------------------------------
.NET Framework 2.0からはPreviewKeyDownイベントが追加され、これを使えば簡単です。PreviewKeyDownイベントはKeyDownイベントの前に発生します。KeyDownやKeyUpイベントが発生しないようなキーが押された場合も発生し、押されたキーを知ることができます
さらに、KeyDownやKeyUpイベントが発生しないようなキーが押された場合でも、PreviewKeyDownイベントハンドラでPreviewKeyDownEventArgs.IsInputKeyプロパティをTrueにすることにより、KeyDownやKeyUpイベントが発生するようになります。ただしこの場合は、そのキー本来の機能(例えば、矢印キーであれば、フォーカスの移動)は失われます。
-------------------------------------------------
上記のような記述があったので、「e.IsInputKey = true;」としてみたのですが、目的の動作にはなりませんでした。
目的の動作を実現するにはどのようにすればよろしいでしょうか。
ご教示のほど、よろしくお願いします。