使用Control.FromHandle时,Form上的Tab键消失

时间:2017-10-26 17:02:25

标签: vb.net winforms handle floating

VB2010:我有一个表单,我在一个通过.NET支持他们的框架的地图应用程序中显示。因此,当用户单击自定义扩展程序上的按钮时,将显示我的表单。

Private frm As New frmDesigner 'since this is a floating form

Public Overrides Sub OnClick()
    Try
        ''display the form normally
        'Dim frm As New frmDesigner
        'frm.ShowDialog()

        'display the modeless form and the form will always be on top of the main app.
        If frm.IsDisposed Then frm = New frmDesigner 'To handle user closing form
        If frm.Visible Then
            frm.BringToFront()
        Else
            Dim appCtr As Control = Control.FromHandle(CType(MyApp.hWnd, IntPtr))
            frm.Show(appCtr)
        End If
    Catch ex As Exception
        DisplayException(ex)
    End Try
End Sub

这很有效,我已经使用这种方法已有几年了。我现在看到的问题是表单上的控件标签不起作用。一旦表单出现,我按Tab键按钮,光标不会通过控件标签。我可以通过鼠标将焦点设置在文本框上,然后尝试切换到下一个控件,但这也不起作用。

如果我通过frm.ShowDialog正常显示表单,那么Tab键确实有效。这里有什么东西可以使标签正常工作吗?

0 个答案:

没有答案