- - PR -
SendKeys と ProcessDialogKey の違いって…??
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-09-11 17:34
VB.NETで開発しています。
初心者なんですが Enterを押下したときに、FocusのSetをしたいのですが、 ソースの修正をしているとFocusの設定方法が2つ出てきました。 ちなみにListBoxからTxtBoxへのSetFocusで SendKeys.Send("{Tab}") と ProcessDialogKey(keys.Tab) との2種類なのですが 2つの違いって何なのでしょうか? また今後応用していくのならどちらの方が良いのか いいアドバイスがあれば教えてください。 | ||||
|
投稿日時: 2006-09-11 17:58
リファレンスに答えがありますので、リファレンスを見てください。 受け取る方、発信する方とで全然違うことがわかると思います。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-09-11 19:38
じゃんぬねっとさん返信ありがとうございます☆
リファレンスを読んでみて、SendKeys.Send("{Tab}")はなんとか 理解することが出来たのですが ProcessDialogKey(keys.Tab)はいまいちよく理解できませんでした。 SendKeys.Send("{Tab}")は処理を投げるだけで ProcessDialogKey(keys.Tab)は処理が行われたかどうかTrue Falseで返す… っていうことですか(;_;)? 本当理解力が低くて申し訳ないのですが、この解釈でも大丈夫でしょうか?? | ||||
|
投稿日時: 2006-09-11 20:41
大雑把には正しいです。 (ProcessCmdKey メソッドも見て頂いた方が良いかもしれません) 送る側 / 受ける側とで全く違うということがわかったかと思います。 (ProcessDialogKey メソッドが、SendKey と一対一の関係ではあるという意味ではありません) SendKeys を使った方は、Tab のキーストロークを送信することで、フォーカス遷移を実現しています。 当たり前ですが、受け側では [Tab] キーを受け取るため、特に何かをする必要はありません。 ProcessDialogKey メソッドをオーバーライドしている方は、 Enter キーを補足して、あたかも [Tab] キーを受信したかのように見せかけています。 つまり、フォーカス遷移を自前で実装 (一般的には、SelectNextControl メソッドを使用) しているのです。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-09-12 11:04
おはようございます♪
じゃんぬねっとどうもありがとうございます! 返信が大変遅れて申しわけありませんですm(__m すごく簡易に理解しているかも知れないのですが、 前回の返答を読ませて頂いて理解できました☆(>▽<) ともかく今回はtab移動だけなのでSendKeysにしようかなと☆ また処理が複雑になっていけば ProcessDialogKeyにしようかなと思います(・∀・) じゃんぬねっと本当にありがとうございました☆ また投稿した際にはお世話なるかもしれませんが その際にはまたよろしくお願いします。 |
1