- - PR -
VB6のようにコマンドボタンからフォームのKeyDoenイベントを実行する
1
投稿者 | 投稿内容 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-02-23 13:33
VB6での Form_KeyDown(KeyCode, Shift) 処理を.Netで行うにはどうすればいいでしょうか?
・ButtonコントロールのClickにて上記のように処理を行いたいのですが。。。 (Button1〜8…にF1〜F8キーの割り当てを行っています) ・いろいろ調査しましたが、解決には至らず、調査過程の中で「イベントは発生するもので、発生させるものではない」などのコメントも確認し、そもそも.Netの思想から外れているのかもしれませんが、 ・フォームKeyDown時にButton1.PerformClickメソッドで呼び出すのが本来なのでしょうか? | ||||||||||||||||
|
投稿日時: 2007-02-23 13:34
自己レスです。
Key_DoenでなくKey_Downですね 失礼しました | ||||||||||||||||
|
投稿日時: 2007-02-23 13:43
Button1のクリック時とF1の押下時に同じ処理をする。が正解じゃないですか。
Button1のクリック時とF1の押下時にデータベース登録処理を行うなら、Button1のクリック時とF1の押下時どちらでもTouroku()メソッドを呼ぶ、というような作りにしましょう。 | ||||||||||||||||
|
投稿日時: 2007-02-23 13:48
えーと…ボタンをクリックした際に、フォームでキーを押したことにしたい、ということですか?
例えば、キーコードを引数にしたメソッドAを別に作れば、なにか見えて来ないですかね。 そういう考え方をしてみては。 [ メッセージ編集済み 編集者: mio 編集日時 2007-02-23 13:49 ] | ||||||||||||||||
|
投稿日時: 2007-02-23 13:54
ということは、
こちらの文章の '意味' は、KeyDown イベントをメソッドを呼ぶがごとく、
こうしていたということでしょうか? これに関しては、.NET がどうこう関係なく VB6 でも 「イベントは起こすものではない」 と言えます。
PerformClick メソッドは、ローカルな業務用フレームワーク実現のために使用した方が良いでしょう。 単発ものであれば、一郎さんが仰るようにメソッドで明示化した方が可読性は良いと思います。 仮に、Button1 〜 Button8 が仮想ファンクションだとしたら、そういうユーザーコントロールを作り、 ユーザーコントロール内部で解決を図った方が良いかもしれません。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||||||
|
投稿日時: 2007-02-23 14:09
みなさん多数のご意見ありがとうございます。
VB6からイベントの使用方法を取り違えていたのかもしれませんね 大変、参考、ためになりました ありがとうございました。 |
1