投稿日 | : 2005/10/17(Mon) 11:16 |
投稿者 | : なお |
Eメール | : |
URL | : |
タイトル | : コントロール配列のイベントを1クラスにまとめたい |
はじめまして、なおともうします。わからないことがありまして
質問させていただきたいのです・・
フォームに配置しているコントロールのイベントを1クラスにま
とめて処理しようとしています。コントロールが配列になってい
なければ、以下のように、
・Form1上
Text1
Text2
Text3
・Form1のソース
Option Explicit
Private mobjTextList() As clsText
Private Sub Form_Load()
ReDim mobjTextList(2) As clsText
Set mobjTextList(0) = New clsText
Set mobjTextList(1) = New clsText
Set mobjTextList(2) = New clsText
Set mobjTextList(0).TextBox = Text1
Set mobjTextList(1).TextBox = Text2
Set mobjTextList(2).TextBox = Text3
End Sub
・clsTextのソース
Option Explicit
Private WithEvents mobjTextBox As TextBox
Public Property Set TextBox(objTextBox As TextBox)
Set mobjTextBox = objTextBox
End Property
Private Sub mobjTextBox_Change()
mobjTextBox.FontBold = True
End Sub
とすることで、フォームに配置したTextBoxのChangeイベントを
clsTextにまとめることは出来ました。しかし、Form1上のコント
ロールが以下のように配列になっているとき、
・Form1上
Text1(0)
Text1(1)
Text1(2)
フォームに以下のようなソースを書いて実行すると、
Option Explicit
Private mobjTextList() As clsText
Private Sub Form_Load()
ReDim mobjTextList(2) As clsText
Set mobjTextList(0) = New clsText
Set mobjTextList(1) = New clsText
Set mobjTextList(2) = New clsText
Set mobjTextList(0).TextBox = Text1(0)
Set mobjTextList(1).TextBox = Text1(1)
Set mobjTextList(2).TextBox = Text1(2)
End Sub
「オブジェクトまたはクラスがこのイベントセットを
サポートしていません。」
とエラーが発生してしまいます。このように、配列になっている
コントロールを1クラスにまとめてイベントを書く方法がありま
したら、ご教示願えますでしょうか。
よろしくお願いいたします。