程序是使用VS2010 开发,有两个界面一个是父窗体(form1)一个是子窗体((child1Form)
父窗体打开子窗体代码如下:
Declare Function SetParent Lib "user32" Alias "SetParent" (ByVal hWndChild As IntPtr, ByVal hWndNewParent As IntPtr) As Long
  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        SetParent(child1Form.Handle, Me.Handle)
        child1Form.Top = Me.Top
        child1Form.Left = Me.Left
        child1Form.Show()
    End Sub
当父窗体在屏幕的不同位置时,子窗体相对父窗体的位置一直在变化,感觉上面的代码没用,焦急。

解决方案 »

  1.   

    什么乱七八糟的,MDI有专门的属性啊!
    'MDI父窗体'
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            child1Form.MdiParent = Me '父子关联'
            child1Form.Show() '显式子窗体'
        End Sub    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Me.Panel1.Dock = DockStyle.Left '按钮要放在Panel1上,Panel1要停靠'
            Me.IsMdiContainer = True '设为MDI父窗体'
        End Sub
      

  2.   

    把括号里的.handle改为.whd