多个子表单表现得很奇怪

时间:2016-08-10 13:36:30

标签: vb.net forms visual-studio-2015 dock mdichild

我创建了一个Form,可以将按钮动态加载到MDI Parent Form左侧的面板中。加载后,用户可以单击其中一个按钮,子窗体将加载到右侧,停靠在顶部并包含带有某些查询结果的数据网格视图。由于对接顶部属性,添加的每个子表单都位于前一个子表单的正下方。

所有这些看起来都很好,但是当打开多个子窗体时,窗体的行为是出乎意料的。如果我点击底部窗体以外的任何子窗体,它会立即将其位置移动到底部,而不是保持原位。有没有办法解决这个问题 - 或者我的代码中是否有我正在做的事情意味着这种情况正在发生 - 例如试图停靠窗口?

我的代码如下。

Private Sub TableLookupForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Dim mySQLString As String = "Button SQL Query"

    Dim i As Integer = 0

    myVector.mySQLString = mySQLString


    For Each row In myVector.myIngresDataset.Tables(0).Rows
        Dim myBtn As New Button
        i = i + 1
        myBtn.Text = row("table_name")
        myBtn.Name = "Btn" & i
        myBtn.Dock = DockStyle.Top
        AddHandler myBtn.Click, AddressOf Me.Button_Click
        Me.Panel1.Controls.Add(myBtn)
        Me.Panel1.Controls.SetChildIndex(myBtn, 0)
    Next
End Sub

Private Sub Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

        Dim myTableForm As New TableChildForm
        myTableForm.MdiParent = Me

        myTableForm.Dock = DockStyle.Top
        myTableForm.Tag = sender.text
        myTableForm.Text = sender.text

        Dim mySQLString As String = "Form SQL Query"

        myVector.mySQLString = mySQLString
        myTableForm.myTableData.DataSource = myVector.myIngresDataset.Tables(0)
        myTableForm.Show()

End Sub

谢谢,

保罗。

0 个答案:

没有答案