掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
WebControlのラジオボタンを押した等のイベントをVBで拾うには (ID:114588)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> CLASSを利用する場合、 CLASSって、<p class="information"> とかで使われる、class属性の事ではなく、 先のサンプルで使った クラスモジュール の事ですよね? > これにパラメータを渡す方法はあるのでしょうか? パラメータというのは、例えば HTML の表記でいえば、 <input type="radio" id="R1" name="R" onclick="MyFunc(1)"> <input type="radio" id="R2" name="R" onclick="MyFunc(2)"> のようなイメージでしょうか? (上記では onclickイベントにて、MyFunc関数に 1 や 2 といった引数を渡しています) だとすればクラスよりも、UserControlのイベントの方が使いやすいかと思います。 UserControlであれば、コントロール配列にする事で、複数のイベントを束ねられますし。 '---------------------------------------- '---- ユーザーコントロール: WebEvent ---- '---------------------------------------- 'InvisibleAtRuntimeプロパティは、Trueに設定してください。 'また、[DefaultMethod]プロシージャのプロシージャIDを '必ず「既定値」に設定しておいて下さい。 '---------------------------------------- Option Explicit Private mvarUserParameter As Variant Public Event WebEvent(ByRef UserParameter As Variant) Public Sub DefaultMethod() RaiseEvent WebEvent(mvarUserParameter) End Sub Public Function EventInfo(ByRef UserParameter As Variant) As WebEvent mvarUserParameter = UserParameter Set EventInfo = Me End Function '--以下はおまけ Private Sub UserControl_AmbientChanged(PropertyName As String) Refresh End Sub Private Sub UserControl_Paint() Dim X As Single, Y As Single X = Screen.TwipsPerPixelX Y = Screen.TwipsPerPixelY Line (0, 0)-(ScaleWidth - X, ScaleHeight - Y), vbBlack, B CurrentX = X * 3 CurrentY = Y * 3 Print Ambient.DisplayName End Sub =============================================== '----------------------------------- '---- フォームモジュール: Form1 ---- '----------------------------------- 'WebBrowser1 と WebEvent1(0) が必要です。 ' 'フォームに、WebBrowserコントロールと、 'WebEventユーザーコントロールを貼っておき、 'WebEvent1のIndexプロパティを 0 にします。 '----------------------------------- Option Explicit Private Sub Form_Load() WebBrowser1.Navigate2 "http://www.google.co.jp/" End Sub Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant) 'Load WebEvent1(0) Load WebEvent1(1) 'イベントへの関連付けを行います。第3引数には、任意のパラメータを渡せます。 'ここで指定したパラメータは、WebEventイベントの引数に渡されます。 Set WebBrowser1.Document.f.lr(0).onclick = WebEvent1(0).EventInfo("あいうえお") Set WebBrowser1.Document.f.lr(1).onclick = WebEvent1(1).EventInfo("かきくけこ") 'なお、複数のパラメータを渡したい場合は、 ' 『 Set 〜 = obj.EventInfo( Array("a", "b", "c") ) 』 'のように、配列を使って指定してください。 End Sub Private Sub WebEvent1_WebEvent(Index As Integer, UserParameter As Variant) Debug.Print "コントロール"; Index; "でイベントが発生しました。("; UserParameter; ")" End Sub
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.