我正在 WinForms 中开发一个应用程序,我有 2 个 MDI 孩子,我想知道 Form.Focus 和 Form.BringToFront 之间的区别
我想知道在单击相应表单的标题栏时要使用哪一个,以便在我拖放表单时弹出它
如果您在调用 Form.Show 之后设置子表单 mdiParent 属性,那么它会弄乱所有子表单的焦点,因此对我来说,在 MDI 父级中拖放 MDI 子级不会将表单集中在 Drag start 上,但仅在 MouseUp 之后
Focus() 将焦点设置为 U 元素。BringToFront() 将您的元素置于其他元素之上(与您的元素重叠)。
因此,如果您在表单上使用 BringToFront(),它将被带到您 MDI 环境中窗口的前面。但这并不意味着你的表格会获得焦点。如果您使用 Focus(),您的表单将获得焦点:例如,您将能够通过键盘与表单交互。但这并不意味着形式将被置于其他形式之上。所以也许你应该同时使用这两种方法。
当我打开 MDI 子窗体时,我在 MDI 父窗体中创建以下函数:
Public Sub ShowMDIChild(f As Form)
f.MdiParent = Me
f.Show()
End Sub
“f”参数是我希望打开的新形式:
MyMDIPParent.ShowMDIChild(New Hospitals)