I have narrowed my problem to this simple case, but can't seem to find what's going on:
- I have two forms, on with a single button, and the other empty.
 - On clicking the button, form1 hides and shows form2
 - when showung up, form2 will hide, and show form1 back again
 
In addition, when entering VisibleChanged, Form2 will stop with a MsgBox
The code follows.
Now the Expected behavior, when clicking on button would be
- Form1 hides
 - first MsgBox for visible turning true due to Form1 calling Form2.show
 - second MsgBox for visible turning false due to Form2 calling Me.hide
 - Form1 shows up
 
all this does happend, but then,
- Form2 shows up (Form1 is still there)
 - a msgbox shows up (telling that form2.visible is True again)
 - a msgbox shows up (telling that form2.visible is False now)
 - Form2 hides
 
Any idea why?
here's the code:
Public Class Form1
    Private Sub ButtonGO_Click(sender As Object, e As EventArgs) Handles ButtonGO.Click
        Me.Hide()
        Form2.Show()
    End Sub
End Class
and also
Public Class Form2
    Dim calls As Integer = 0
    Private Sub Form2_VisibleChanged(sender As Object, e As EventArgs) Handles Me.VisibleChanged
        calls += 1
        MsgBox("calling : " & calls & " / Me.Visible : " & Me.Visible)
        If Me.Visible Then
            Me.Hide()
            Form1.Show()
        End If
    End Sub
End Class