1

我正在 WinForms 中开发一个应用程序,我有 2 个 MDI 孩子,我想知道 Form.Focus 和 Form.BringToFront 之间的区别

我想知道在单击相应表单的标题栏时要使用哪一个,以便在我拖放表单时弹出它

如果您在调用 Form.Show 之后设置子表单 mdiParent 属性,那么它会弄乱所有子表单的焦点,因此对我来说,在 MDI 父级中拖放 MDI 子级不会将表单集中在 Drag start 上,但仅在 MouseUp 之后

4

2 回答 2

2

Focus() 将焦点设置为 U 元素。BringToFront() 将您的元素置于其他元素之上(与您的元素重叠)。

因此,如果您在表单上使用 BringToFront(),它将被带到您 MDI 环境中窗口的前面。但这并不意味着你的表格会获得焦点。如果您使用 Focus(),您的表单将获得焦点:例如,您将能够通过键盘与表单交互。但这并不意味着形式将被置于其他形式之上。所以也许你应该同时使用这两种方法。

于 2012-04-12T17:16:55.053 回答
1

当我打开 MDI 子窗体时,我在 MDI 父窗体中创建以下函数:

Public Sub ShowMDIChild(f As Form)
    f.MdiParent = Me
    f.Show()
End Sub

“f”参数是我希望打开的新形式:

MyMDIPParent.ShowMDIChild(New Hospitals)
于 2012-04-12T17:32:31.397 回答