親コンテナのBackColor取得

解決


香奈恵  2005-03-18 12:49:39  No: 88907  IP: [192.*.*.*]

コントロールが貼り付けられたコンテナの背景色を取得したいのですができるでしょうか?
ただし、コンテナが複数の階層になっている場合、一番親のコンテナの背景色を取得したいのです。

よろしくお願いします。

編集 削除
Say  2005-03-18 13:47:16  No: 88908  IP: [192.*.*.*]

通常、「一番親のコンテナ」はFormのはずですから、
FormのBackColorを取得すればいいのではないかと。

もし、「Form上に直に置かれたコンテナコントロール」という意味なら、
再帰でparentを追いかけていってFormにたどり着いたとき、
直前に拾ったコントロールのBackColorを取得すればいいのではないかと。

編集 削除
LESIA  2005-03-18 13:55:27  No: 88909  IP: [192.*.*.*]

こんな感じかな?
コンテナが無い場合は、そのコントロール自身の背景色になります

Private Sub Command1_Click()
    Dim obj As Object
    
    Set obj = GetContainer(Text1)
    Debug.Print Hex(obj.BackColor)
    
End Sub

Private Function GetContainer(obj As Object) As Object
    If obj.Container.Name = Me.Name Then
        Set GetContainer = obj
    Else
        Set GetContainer = GetContainer(obj.Container)
    End If
End Function

編集 削除
香奈恵  2005-03-18 14:13:31  No: 88910  IP: [192.*.*.*]

ありがとうございます。
さっそく試してみます。

編集 削除
香奈恵  2005-04-01 15:19:49  No: 88911  IP: [192.*.*.*]

解決しました

編集 削除