程序是使用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
当父窗体在屏幕的不同位置时,子窗体相对父窗体的位置一直在变化,感觉上面的代码没用,焦急。
父窗体打开子窗体代码如下:
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
当父窗体在屏幕的不同位置时,子窗体相对父窗体的位置一直在变化,感觉上面的代码没用,焦急。
'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