erm when using opacity , 1 represents 100% to make say a 10% ( almost invisible ) you need to do 0.1 , eg:
in Form1 ( no need to modify the New sub in form2 either )
VB Code:
  1. [COLOR=BLUE]Private[/COLOR] [COLOR=BLUE]Sub[/COLOR] Button1_Click([COLOR=BLUE]ByVal[/COLOR] sender [COLOR=BLUE]As[/COLOR] System.Object, [COLOR=BLUE]ByVal[/COLOR] e [COLOR=BLUE]As[/COLOR] System.EventArgs) [COLOR=BLUE]Handles[/COLOR] Button1.Click
  2.         [COLOR=BLUE]Dim[/COLOR] frm [COLOR=BLUE]As[/COLOR] [COLOR=BLUE]New[/COLOR] Form2()
  3.         AddOwnedForm(frm) [COLOR=GREEN]'/// add it as an owned form
  4. [/COLOR]        frm.Show()
  5.     [COLOR=BLUE]End[/COLOR] [COLOR=BLUE]Sub[/COLOR]
in Form2 :
VB Code:
  1. [COLOR=BLUE]Private[/COLOR] [COLOR=BLUE]Sub[/COLOR] Form2_Load([COLOR=BLUE]ByVal[/COLOR] sender [COLOR=BLUE]As[/COLOR] System.Object, [COLOR=BLUE]ByVal[/COLOR] e [COLOR=BLUE]As[/COLOR] System.EventArgs) [COLOR=BLUE]Handles[/COLOR] [COLOR=BLUE]MyBase[/COLOR].Load
  2.         [COLOR=BLUE]Dim[/COLOR] frmMain [COLOR=BLUE]As[/COLOR] Form1 = Owner
  3.         [COLOR=BLUE]Me[/COLOR].Opacity = 0.1 '///0.1 = 10%
  4.         frmMain.Hide()
  5.     [COLOR=BLUE]End[/COLOR] [COLOR=BLUE]Sub
  6.  
  7. [/COLOR]    [COLOR=BLUE]Private[/COLOR] [COLOR=BLUE]Sub[/COLOR] Form2_Closing([COLOR=BLUE]ByVal[/COLOR] sender [COLOR=BLUE]As[/COLOR] [COLOR=BLUE]Object[/COLOR], [COLOR=BLUE]ByVal[/COLOR] e [COLOR=BLUE]As[/COLOR] System.ComponentModel.CancelEventArgs) [COLOR=BLUE]Handles[/COLOR] [COLOR=BLUE]MyBase[/COLOR].Closing
  8.         Owner.Show()
  9.         [COLOR=BLUE]Me[/COLOR].Close()
  10.     [COLOR=BLUE]End[/COLOR] [COLOR=BLUE]Sub[/COLOR]
the Owner bit replaces the modified new sub eg:
Public Sub New(ByVal frm As Form)
MyBase.New()
pform = frm
^^^^ becomes...
Dim frmMain As Form1 = Owner