VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

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

よろしくお願いいたします。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -