Thanks for your continued input. Unfortunately your example does not reproduce the situation. If a Rect had a Click event I wouldn't have a problem. The Label is only to provide that. Having all Labels probably presents a memory use increase plus I have to Tag the colours to read them, so back to Rects.
I have tried to extract the relevant code from the rest to illustrate but it is too difficult. I can perhaps describe it better.
I produce a small grid of coloured Rectangles.
On top of one I place a Label that is transparent.
It is Dim'd locally and thus not saved in an Array or directly referenceable except with Sender. This is essential.
At your suggestion snd to receive Sender is now a Global Label.
Upon clicking the Label, the colour of the Rectangle under the Label is changed and the Rect is redrawn and invalidated. The new colour is visible through the Label.
A second Click gets no response, 'presumably' because the label is below the Rect??
I need to use Global snd in the main code to bring the Label forward but it does not work, because I still get no Click.
However to test using Sender (snd) I used it to change the Label colour and the Tag content and that worked fine. Just no Click.
'c,r are Global row col parameters. brk the overlaying Label. sEvent "Yes"
Sub liveB(c,r As Byte, sEvent As String)
Dim brk As Label
Dim aTag(2) As Byte
brk.Initialize(sEvent)
aTag(0)=c : aTag(1)=r
brk.Tag=aTag
brk.Color=Colors.Transparent
pnl.AddView(brk,(c+1)+c*kCellwh,(r+1)+r*kCellwh,kCellwh,kCellwh)
End Sub
Sub Yes_Click
Dim aPos(2) As Byte
snd=Sender
aPos=snd.Tag
...
End Sub
somewhere in the main code that changes the Rect colours I need...
snd.BringToFront to actually work after redrawing the Rect.