- - PR -
コントロールのキー操作
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-04-12 11:47
Windows FormのあるコントロールAのキーダウンイベントで
キーコードを判断して(必要によりキーコードを変更する)、 別のコントロールBにキーコードを転送することが可能ですが、 このとき、Shift、Controlの状態も一緒に転送したいです。 何か方法ありませんでしょうか? よろしくお願いします。 現在はこんな感じです。なんとかして標準のコードでしたいですが、 どうしても無理ならAPIでもなんでも結構です。ご教授願えませんでしょうか? MapVirtualKey なんかは使えそうですかね? 問題はe.Shiftプロパティとかは中で何を調べているかですが。 A のキーダウンイベントないです。
言い忘れましたが、 この場合、事情でSendKeysは使用できないことになってます。 _________________ 世界平和を願う! http://park8.wakwak.com/~chin/ [ メッセージ編集済み 編集者: CHN 編集日時 2004-04-12 11:56 ] | ||||||||
|
投稿日時: 2004-04-12 12:00
>別のコントロールBにキーコードを転送する
と書いてありますが、ソースを見るとBのKeyDownイベントに結び付けられたメソッドB_KeyDown()をコードから呼んでいるように見えますが。 OnKeyDown()メソッドを使ってみてはどうでしょう。Protectedなので直接外からは 呼べませんけどね。 | ||||||||
|
投稿日時: 2004-04-12 12:10
ありがとうございます。 転送といっても、呼び出しているだけっす。すいません。 OnKeyDownですか、、、ヘルプを見てやはりKeyEventArgsがありますね。 こいつのShiftプロパティはgetだけですので、なんか同じという感じです。 私が一郎さんの言われていることを理解できていないかもしれません、 もし、なにかありましたらもう少しくわしく教えていただけないでしょうか? _________________ | ||||||||
|
投稿日時: 2004-04-12 12:51
どうも、すいません。
なんか、すっげー簡単でした。 KeyEventArgs(Keys.Shift | Keys.Left); でOKでした。勉強不足でした。 _________________ | ||||||||
|
投稿日時: 2004-04-12 14:06
なるほど。
KeysにはFlagsAttribute属性が付いているので、ビットを立ててやればいいんですね。 KeyEventArgsコンストラクタの第一引数の説明にも
と書いてありますね。 私が書いた「OnKeyDown()メソッドを使ってみては」というのは、A_KeyDown()で受け取ったeをそのままOnKeyDownに渡してやれば良いかなと思ったんです。 | ||||||||
|
投稿日時: 2004-04-12 14:13
ご指摘のとおりです。面目ないです。 大変失礼しました。 ヘルプにかいてあったんです。 書いてあっても、実はみえないですよ???^^ 人に聞いてみて初めて気がつくことがあるんです。 って、自分を正当化しても い、いいでしょうか、、、、、 _________________ | ||||||||
|
投稿日時: 2004-04-12 14:39
ありますね、非常に、よく。自分で書いたコードでさえも、見えなくなっていることがありますね。。。 | ||||||||
|
投稿日時: 2004-04-12 14:54
Jittaさん、ありがとうございます。
なんか少し楽になりました^^♪ あまりこういうしようもない質問をしないように したいですね。 と言いながら、また、ありそうな。 すいません _________________ |
1