投稿時間: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クラスにまとめてイベントを書く方法がありま したら、ご教示願えますでしょうか。
よろしくお願いいたします。
|