VB.NET与Focus()和BringToFront()的区别

时间:2012-04-12 17:00:45

标签: vb.net winforms

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

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

如果您在调用Form.Show后设置子窗体mdiParent属性,那么它会弄乱所有子窗体的焦点,所以对我来说,在MDI父窗体内拖放MDI子窗口不会关注窗体在拖动开始时,但仅在MouseUp

之后

2 个答案:

答案 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)