VB.NETのHandles句に相当する、VB6.0の記述……といいますか機能は何にあたるのでしょうか?
VB.NETにおいては、コントロールとプロシージャを結び付けて発火タイミングを指定するのにはHandles句を用いるものと認識しているのですが、会社にあったVB6.0のコードを読んでいるとHandles句が使われていないことに気付きました。
VB6.0とVB.NETの文法はかなり異なるそうですが、VB6.0で発火イベントを指定するのにはどのような機能――もといコードを書くのでしょうか?
ご回答のほど、よろしくお願い申し上げます。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答2件
0
※先の回答者であるmaisumakunさんが書かれているとおりですので、フォロー的な回答となります:
VB6.0で発火イベントを指定するのにはどのような機能――もといコードを書くのでしょうか?
フォーム上のボタンやその他のコントロールは、それらのオブジェクト名に縛られたイベントハンドラー名で勝手に結び付けられます。下図はVisual Basic 6.0(SP6) 上でCommand1
と言うオブジェクト名のボタンをフォームに貼り付けた例ですが、これをIDE上でクリックすると、ご存知のようにCommand1
と結びついたCommand1_Click
と言う関数が勝手に生成され、ボタンクリック用のイベントハンドラーになります。
コードウィンドウ上でCommand1_Click
関数を別の名前にすればイベントハンドラーからは外れますし、名前を元に戻せばまたイベントハンドラーに戻ります。フォームに関してはForm_Load
などと固定です。これらコントロールのオブジェクト名とイベントハンドラー名の結び付けは、コンパイル時に自動で解決されます。
実際、上記例のVisual Basic 6.0 (SP6)のプロジェクトファイル(Form1.frm, Project1.vbp)を見ると、イベントハンドラーとの結び付きを想起させる部分はありません。
(1) ファイル「Form1.frm」の内容
VB
1VERSION 5.00 2Begin VB.Form Form1 3 Caption = "Form1" 4 ClientHeight = 1140 5 ClientLeft = 60 6 ClientTop = 345 7 ClientWidth = 4680 8 LinkTopic = "Form1" 9 ScaleHeight = 1140 10 ScaleWidth = 4680 11 StartUpPosition = 3 'Windows の既定値 12 Begin VB.CommandButton Command1 13 Caption = "Command1" 14 Height = 495 15 Left = 120 16 TabIndex = 0 17 Top = 240 18 Width = 2655 19 End 20End 21Attribute VB_Name = "Form1" 22Attribute VB_GlobalNameSpace = False 23Attribute VB_Creatable = False 24Attribute VB_PredeclaredId = True 25Attribute VB_Exposed = False 26' フォームロード時のハンドラー 27' 本フォームのオブジェクト名は "Form1"だが、 28' 本フォームのデフォルトのハンドラーなので"Form_Load" 29Private Sub Form_Load() 30 Debug.Print "Form_Load" 31End Sub 32 33' ボタンクリック時のハンドラー 34' ボタンのオブジェクト名は "Command1" 35Private Sub Command1_Click() 36 Debug.Print "Command1_Click" 37End Sub
(2) ファイル「Project1.vbp」の内容
Plain
1Type=Exe 2Form=Form1.frm 3Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#......\WINDOWS\System32\stdole2.tlb#OLE Automation 4Startup="Form1" 5Command32="" 6Name="Project1" 7HelpContextID="0" 8CompatibleMode="0" 9MajorVer=1 10MinorVer=0 11RevisionVer=0 12AutoIncrementVer=0 13ServerSupportFiles=0 14VersionCompanyName="somewhere" 15CompilationType=0 16OptimizationType=0 17FavorPentiumPro(tm)=0 18CodeViewDebugInfo=0 19NoAliasing=0 20BoundsCheck=0 21OverflowCheck=0 22FlPointCheck=0 23FDIVCheck=0 24UnroundedFP=0 25StartMode=0 26Unattended=0 27Retained=0 28ThreadPerObject=0 29MaxNumberOfThreads=1 30 31[MS Transaction Server] 32AutoRefresh=1
投稿2019/04/16 02:44
総合スコア9369
0
ベストアンサー
VB6.0で発火イベントを指定するのにはどのような機能――もといコードを書くのでしょうか?
VB6の場合、たとえばPrivate Sub Button1_Click
のように特定の名前のサブルーチンがハンドラとなります。この結びつきを変える方法はなかったはずです。
投稿2019/04/15 22:21
総合スコア146544
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/16 09:57