This is almost along the lines of pseudo-code.. but perhaps it will help. The idea is to use a boolean that keeps it's value between calls. This could be a Global, or a local static.
VB Code:
Private Sub Form_Load()
'Start with an invisible control
myControl.Visible = False
End Sub
Private Sub Command1_Click()
'In one event, make the control visible.
myControl.Visible = True
End Sub
Private Sub Command2_Click()
'In another event, check for visibility.
'Use a static boolean to ensure the code after the check
'runs only once.
Static Switch As Boolean
If myControl.Visible = True And Switch = False Then
MsgBox "Control is visible"
Switch = True
End If
End Sub