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