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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- Visual Basic(VBA) Changeイベントで複数セルへの貼り付けおよび値削除時に1個目のセルのみエラーになる 3 2022/12/21 09:07
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- Visual Basic(VBA) Visual Basic : ImageListの画像がそろったときにメッセージを表示 1 2023/07/20 13:53
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
Enterキークリック時の動作について
Microsoft ASP
-
CloseとDisposeの違い
Visual Basic(VBA)
-
-
4
VB2005 TextBoxに何も入力しない場合のエラー
Visual Basic(VBA)
-
5
DataGridViewで指定したセルの値を取得
Visual Basic(VBA)
-
6
FORMが開いているかどうかの確認方法
Visual Basic(VBA)
-
7
テキストボックスのエンターキー無効
Visual Basic(VBA)
-
8
vb.netで画面のコントロールId名を変数で動的に制御し処理する方法
Visual Basic(VBA)
-
9
DataGridViewの各セル幅を自由に決め、その幅で固定したい
Visual Basic(VBA)
-
10
DataGridViewでセルクリックイベントを発生させるには
Visual Basic(VBA)
-
11
VBA エンターキーでイベントに入りたい。
PowerPoint(パワーポイント)
-
12
asp.NET初心者です。「 ’Context’は’○○○’のメンバで
Microsoft ASP
-
13
Designer.vbは直接コードをいじってはだめ?
Visual Basic(VBA)
-
14
String"から型'Double'への変換は無効です。 とエラーが出ます。
Visual Basic(VBA)
-
15
VB.NET2005 TextBox 高さ(Height) 変更
Visual Basic(VBA)
-
16
DataGridViewのチェックボックスのON、OFFの判定方法
C言語・C++・C#
-
17
VBのReturnの使い方
Visual Basic(VBA)
-
18
フォームの再読み込み
Visual Basic(VBA)
-
19
VBでストアドの戻りパラメータを受け取る方法
Visual Basic(VBA)
-
20
データセットのレコード更新がしたい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
フォームの再読み込み
-
VBAでオプションボタンによって...
-
ユーザーフォームに別シートか...
-
VBAのボタンの位置が変わって困...
-
セルをマクロのボタンにしたい。
-
ボタンにセットフォーカスする...
-
Access VBA でデータペーストを...
-
C♯初心者で、四則演算の電卓を...
-
他のアプリケーションとの連携
-
ユーザーフォーム中の入力順番...
-
バックスペース機能の作り方
-
回数のカウント
-
VBAで多数のプログラムを一つの...
-
TextBoxでEnterキーを押すと、...
-
CommandButtonのCaptionを変化...
-
VB.net でトグルボタンを実現し...
-
3つのオプションボタンの場所...
-
VBA CommandButtonの文字ずれ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
ユーザーフォームに別シートか...
-
VBA CommandButtonの文字ずれ
-
フォームの再読み込み
-
セルをマクロのボタンにしたい。
-
Excel VBA Application.caller...
-
コマンドボタンやイメージにマ...
-
プロシージャからイベントをコ...
-
Access VBA でデータペーストを...
-
VBAのボタンの位置が変わって困...
-
閉じると「+」になり開くと「-...
-
[Excel VBA]コマンドボタンの入...
-
ASP.Net ラベルの内容をすぐに...
-
Excel マクロ 閉じるボタン
-
ボタン
-
CommandButtonのCaptionを変化...
-
VB.NETでマウスクリックイベン...
-
ボタンの枠線の様なものを消したい
-
C#で動的に作ったtextboxを消す。
おすすめ情報