VB初心者です。
まだ、はじめたばかりなので、上手く質問を説明できませんが、よろしくお願いします。
環境はVisualBasic .net 2003です。
フォームにテキストボックス(TextBox)とボタン(Button)があります。
テキストボックス内でEnterキーを押すと、ボタン(Button)を押したのと同様の効果をだしたいのですが。
VC++6.0だと、SendMessage(WM_COMMAND , .....
のようなやり方でできたはずですが・・・
---------------------------
テキストボックスのコード
Private Sub txtTest_KeyDown(ByVal sender As Object, _
ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtTest.KeyDown
If (e.KeyCode = Keys.Enter) Then
'★★★ここでどういうコードを書いてよいかわかりません。
End If
End Sub
----------------------------
ボタンを押したときのイベントハンドラ
Private Sub btnTest_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTest.Click
ボタンを押したら、このイベントハンドラを呼び出したい。
もしくは、間接的に呼び出したい。
-------
どなたか、やり方をご存知の方がいらっしゃいましたら、よろしくお願いします。
No.1ベストアンサー
- 回答日時:
>SendMessage(WM_COMMAND
とは、多少意味合いが異なりますが。。。
btnTest.PerformClick()
と行うと、btnTestオブジェクトと関連付いたイベントハンドラが起動します。
http://okwave.jp/kotaeru.php3?q=1688744
また、エンターキーの動きに限るのであれば、フォームのAcceptButtonプロパティを利用すると、コーディングが不要です。ついでにエスケープにも動作を持たせたいのであれば、CancelButtonプロパティを利用するといいです。
どうしてもCと全く同様に、イベントを起こすのであれば、Cと同じ手続きでAPIで起こせばよいと思います。
http://okwave.jp/kotaeru.php3?q=199357
Public Class Form1
Inherits System.Windows.Forms.Form
Private Declare Auto Function SendMessage Lib "user32" ( _
ByVal hWnd As Integer, _
ByVal wMsg As Integer, _
ByVal wParam As Integer, _
ByVal lParam As Integer _
) As Integer
Private Declare Auto Function GetDlgCtrlID Lib "user32" ( _
ByVal hWnd As Integer _
) As Integer
Private Const WM_COMMAND As Integer = &H111
Private Const BN_CLICKED As Integer = &H0
#Region " Windows フォーム デザイナで生成されたコード "
#End Region
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
btnTest.PerformClick()
SendMessage( _
Me.Handle.ToInt32, _
WM_COMMAND, _
BN_CLICKED * GetDlgCtrlID(btnTest.Handle.ToInt32) * &H10000, _
btnTest.Handle.ToInt32 _
)
End Sub
End Class
詳細な説明どうもありがとうございました。
btnTest.PerformClick()
で、解決しました。
まさに、このような簡単なやり方を期待していました。
できれば、SendMessageのようなやり方はスマートではないと思っていましたので。
既出だったのですね。
検索はしてみたのですが、見つけることができませんでした。
No.2
- 回答日時:
こういうことではないでしょうか?
Private Sub txtTest_KeyDown(ByVal sender As Object, _
ByVal e As System.Windows.Forms.KeyEventArgs) Handles TxtTest.KeyDown
If e.KeyCode = Keys.Enter Then
btnTest.PerformClick()
End If
End Sub
Private Sub btnTest_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTest.Click
MsgBox("ボタンが押されました")
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
10代と話して驚いたこと
先日10代の知り合いと話した際、フロッピーディスクの実物を見たことがない、と言われて驚きました。今後もこういうことが増えてくるのかと思うと不思議な気持ちです。
-
一番好きな「クリスマスソング」は?
街に出ればクリスマスソングを聞かない日はないくらい、 いろんな曲がかかっていますよね。 あなたが一番好きな「クリスマスソング」を教えてください!
-
治せない「クセ」を教えてください
なくて七癖という言葉どおり、人によっていろいろなクセがありますよね。 あなたには治せないクセがありますか?
-
何歳が一番楽しかった?
自分の人生を振り返ったとき、何歳のころが一番楽しかったですか? 子供の頃でしょうか、それとも大人になってからでしょうか。
-
冬の健康法を教えて!
温度変化が大きくなり、風邪をひきやすいこれからの季節。 どんなことに気をつけていますか?
-
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
VB.NETでのイベントの途中終了
Visual Basic(VBA)
-
VBでの入力値制限について
Visual Basic(VBA)
-
-
4
矢印(左右)キーでイベントを発生させたい。
Visual Basic(VBA)
-
5
DateTimePickerでに年月までしか選択できないようにしたいです。
Visual Basic(VBA)
-
6
テキストボックスの入力制限
Visual Basic(VBA)
-
7
小数点を含む数値かどうか判断の判断方法
Visual Basic(VBA)
-
8
複数のtextboxの処理を一括で行えませんか?
Visual Basic(VBA)
-
9
TextBoxに半角数字のみの入力しかできないようにしたい
Visual Basic(VBA)
-
10
Hideについて(.NET)
Visual Basic(VBA)
-
11
VB.NETでコンボボックスの1行目を空白にしたい
Visual Basic(VBA)
-
12
DataGridViewでセルクリックイベントを発生させるには
Visual Basic(VBA)
-
13
Visual Basicから Spreadのスクロールを制御する方法
Visual Basic(VBA)
-
14
VB.NET2005 TextBox 高さ(Height) 変更
Visual Basic(VBA)
-
15
文字列の後ろから必要分だけ削除したい。
Visual Basic(VBA)
-
16
VB.NET2003 テキストボックスに半角英数字以外入力させない
Visual Basic(VBA)
-
17
SPREAD(GrapeCity)のセルにフォーカスを設定するにはどうしたらいいのでしょうか?
Visual Basic(VBA)
-
18
数字以外の入力をエラーにするには?
Visual Basic(VBA)
-
19
asp.NET初心者です。「 ’Context’は’○○○’のメンバで
Microsoft ASP
-
20
値を返さないコード パス
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】看板の文字を埋めてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・【穴埋めお題】恐竜の新説
- ・我がまちの「給食」自慢を聞かせてっ!
- ・冬の健康法を教えて!
- ・一番好きな「クリスマスソング」は?
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
VB.NETでマウスクリックイベン...
-
閉じると「+」になり開くと「-...
-
VBA MsgBoxで、”いいえ(No)”ボ...
-
[Excel VBA]コマンドボタンの入...
-
リストボックス 何も洗濯され...
-
アイコンとボタンの違い
-
TextBoxでEnterキーを押すと、...
-
VBA CommandButtonの文字ずれ
-
CommandButtonのCaptionを変化...
-
フォームの再読み込み
-
エクセルVBAでユーザーフォーム...
-
VB 電卓 数字キーを押して...
-
vb.net タイマーに引数を渡す
-
VB6コントロール配列をパラメー...
-
コマンドボタンやイメージにマ...
-
VBAで多数のプログラムを一つの...
-
VBAのボタンの位置が変わって困...
-
プロシージャからイベントをコ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
VBA CommandButtonの文字ずれ
-
ユーザーフォームに別シートか...
-
フォームの再読み込み
-
VB.net でトグルボタンを実現し...
-
コマンドボタンやイメージにマ...
-
セルをマクロのボタンにしたい。
-
Excel VBA Application.caller...
-
Access VBA でデータペーストを...
-
閉じると「+」になり開くと「-...
-
ボタンをマウスで押し続けたと...
-
VBAのボタンの位置が変わって困...
-
[VB.net] ボタン(Flat)のEnable...
-
プロシージャからイベントをコ...
-
[Excel VBA]コマンドボタンの入...
-
アイコンとボタンの違い
-
TextBoxでEnterキーを押すと、...
-
VBAで多数のプログラムを一つの...
-
ASP.Net ラベルの内容をすぐに...
おすすめ情報