vb.net-showdialog()将主窗口发送到后台

vb.net-showdialog()将主窗口发送到后台,vb.net,focus,modal-dialog,Vb.net,Focus,Modal Dialog,我有一个模式窗口弹出窗口,这样我的应用程序的用户可以编辑一些东西,然后他们保存它并关闭窗口。当他们关闭弹出窗口时,我的父(主)窗口被发送到我桌面上所有其他应用程序的后面,然后它立即被发送回前面 知道为什么会发生这种情况吗?以您的主要形式: Dim frmDlg as New FormDialogToShow frmDlg.ShowDialog(Me) 主窗体不应发送到后面。子对话框将显示在父对话框的顶部。如果没有所有者引用,mainform有时会被发送到后面。如果未指定所有者表单,

我有一个模式窗口弹出窗口,这样我的应用程序的用户可以编辑一些东西,然后他们保存它并关闭窗口。当他们关闭弹出窗口时,我的父(主)窗口被发送到我桌面上所有其他应用程序的后面,然后它立即被发送回前面

知道为什么会发生这种情况吗?

以您的主要形式:

   Dim frmDlg as New FormDialogToShow
   frmDlg.ShowDialog(Me)
主窗体不应发送到后面。子对话框将显示在父对话框的顶部。如果没有所有者引用,mainform有时会被发送到后面。如果未指定所有者表单,则会发生以下情况:

   Dim frmDlg as New FormDialogToShow
   frmDlg.ShowDialog()
   Me.BringToFront
(答案与第一次相同)

以您的主要形式:

   Dim frmDlg as New FormDialogToShow
   frmDlg.ShowDialog(Me)
主窗体不应发送到后面。子对话框将显示在父对话框的顶部。如果没有所有者引用,mainform有时会被发送到后面。如果未指定所有者表单,则会发生以下情况:

   Dim frmDlg as New FormDialogToShow
   frmDlg.ShowDialog()
   Me.BringToFront
(答案与第一次相同)

以您的主要形式:

   Dim frmDlg as New FormDialogToShow
   frmDlg.ShowDialog(Me)
主窗体不应发送到后面。子对话框将显示在父对话框的顶部。如果没有所有者引用,mainform有时会被发送到后面。如果未指定所有者表单,则会发生以下情况:

   Dim frmDlg as New FormDialogToShow
   frmDlg.ShowDialog()
   Me.BringToFront
(答案与第一次相同)

以您的主要形式:

   Dim frmDlg as New FormDialogToShow
   frmDlg.ShowDialog(Me)
主窗体不应发送到后面。子对话框将显示在父对话框的顶部。如果没有所有者引用,mainform有时会被发送到后面。如果未指定所有者表单,则会发生以下情况:

   Dim frmDlg as New FormDialogToShow
   frmDlg.ShowDialog()
   Me.BringToFront

(答案与第一次相同)

此代码似乎解决了问题:

' When closing the subform
' ------------------------
sub_form.close()
main.focus()
sub_form.dispose()

执行此操作时,即使子窗体是模态窗口,我的主窗体也不会被发送到后面。

此代码似乎解决了问题:

' When closing the subform
' ------------------------
sub_form.close()
main.focus()
sub_form.dispose()

执行此操作时,即使子窗体是模态窗口,我的主窗体也不会被发送到后面。

此代码似乎解决了问题:

' When closing the subform
' ------------------------
sub_form.close()
main.focus()
sub_form.dispose()

执行此操作时,即使子窗体是模态窗口,我的主窗体也不会被发送到后面。

此代码似乎解决了问题:

' When closing the subform
' ------------------------
sub_form.close()
main.focus()
sub_form.dispose()

执行此操作时,即使子窗体是模式窗口,我的主窗体也不会被发送到后面。

您的模式窗体是否在
ShowDialog
行结束之前隐藏了自己?这发生在我身上,通过从模态表单中删除
Hide
调用,我能够解决这个问题


我想我在这里的某个地方读到了,这是因为Windows在活动应用程序中没有一个已启用的窗口来发送焦点,所以它会将焦点发送到下一个应用程序。

ShowDialog
行结束之前,您的模式窗体是否以某种方式隐藏了自己?这发生在我身上,通过从模态表单中删除
Hide
调用,我能够解决这个问题


我想我在这里的某个地方读到了,这是因为Windows在活动应用程序中没有一个已启用的窗口来发送焦点,所以它会将焦点发送到下一个应用程序。

ShowDialog
行结束之前,您的模式窗体是否以某种方式隐藏了自己?这发生在我身上,通过从模态表单中删除
Hide
调用,我能够解决这个问题


我想我在这里的某个地方读到了,这是因为Windows在活动应用程序中没有一个已启用的窗口来发送焦点,所以它会将焦点发送到下一个应用程序。

ShowDialog
行结束之前,您的模式窗体是否以某种方式隐藏了自己?这发生在我身上,通过从模态表单中删除
Hide
调用,我能够解决这个问题


我想我在这里的某个地方读到了,这是因为Windows在活动应用程序中没有一个可将焦点发送到的启用窗口,所以它将焦点发送到下一个应用程序。

我正在拼命搜索,以找到类似问题的答案。我发现这一点特别有用:

Private Sub Frm_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
    Prompting = False

    Frm = Nothing
    FrmPrompt.Close()

    FrmPrompt.Dispose()
    FMain.Activate()
End Sub

激活允许我的主表单不会被发送到我打开的任何其他表单后面

我在拼命寻找一个类似问题的答案。我发现这一点特别有用:

Private Sub Frm_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
    Prompting = False

    Frm = Nothing
    FrmPrompt.Close()

    FrmPrompt.Dispose()
    FMain.Activate()
End Sub

激活允许我的主表单不会被发送到我打开的任何其他表单后面

我在拼命寻找一个类似问题的答案。我发现这一点特别有用:

Private Sub Frm_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
    Prompting = False

    Frm = Nothing
    FrmPrompt.Close()

    FrmPrompt.Dispose()
    FMain.Activate()
End Sub

激活允许我的主表单不会被发送到我打开的任何其他表单后面

我在拼命寻找一个类似问题的答案。我发现这一点特别有用:

Private Sub Frm_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
    Prompting = False

    Frm = Nothing
    FrmPrompt.Close()

    FrmPrompt.Dispose()
    FMain.Activate()
End Sub

激活允许我的主表单不会被发送到我打开的任何其他表单后面

你好!如果我没有弄错的话,您将showdialog()替换为show(),并且主窗体停止返回;但是,您想知道为什么mainForm的paint事件表现得如此奇怪(没有提供任何代码或指示)。您正计划再次这样做,或者您将只关注您的问题(理解showdialog()为什么会发回mainform)?请发布用于显示模式窗口的代码我想我已经解决了。这个问题导致了我的结果,虽然我没有找到这个问题的答案,但它让我尝试了其他似乎有效的方法。我一直忘了,你不能在评论中使用enter键。不管怎样,似乎过快地处理子窗体会导致问题。现在,我使用sub_form.close();Main.focus();sub_form.dispose();这似乎解决了我的问题。你好!如果我没有弄错的话,您将showdialog()替换为show(),并且主窗体停止返回;但是,您想知道为什么mainForm的paint事件表现得如此奇怪(没有提供任何代码或指示)。您正计划再次这样做,或者您将只关注您的问题(理解showdialog()为什么会发回mainform)?请发布用于显示模式窗口的代码我想我已经解决了。这个问题导致了我的结果,尽管我