コントロールが貼り付けられたコンテナの背景色を取得したいのですができるでしょうか?
ただし、コンテナが複数の階層になっている場合、一番親のコンテナの背景色を取得したいのです。
よろしくお願いします。
通常、「一番親のコンテナ」はFormのはずですから、
FormのBackColorを取得すればいいのではないかと。
もし、「Form上に直に置かれたコンテナコントロール」という意味なら、
再帰でparentを追いかけていってFormにたどり着いたとき、
直前に拾ったコントロールのBackColorを取得すればいいのではないかと。
こんな感じかな?
コンテナが無い場合は、そのコントロール自身の背景色になります
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
ありがとうございます。
さっそく試してみます。
解決しました
ツイート | ![]() |