如何重点关注表单?

时间:2016-02-26 17:49:18

标签: vb.net forms winforms focus

我在企业生产环境中有一台PC,需要确保相同的程序一遍又一遍地加载。我升级到Windows 7,因为MacAfee,我的启动程序一直在失去焦点。我试图卸载MacAfee,但它是一个企业版,它不会让我失望。我尝试在我的vb.net应用程序中进行一些编程以重新获得焦点,但没有任何效果。

这是一张程序如何启动的图片 - 请注意表单颜色较浅且失去焦点: http://i.imgur.com/Qwlzuzw.jpg

这里有一张图片,说明用鼠标点击它后我的表格应该如何加载 - 注意表格的颜色较深: http://i.imgur.com/DuLyCsC.jpg

这就是我认为MacAfee出现问题的原因 - 如果我选择alt标签,MacAfee更新程序图标会显示: http://i.imgur.com/opgOWHW.jpg

以编程方式或其他方式解决我的问题的任何想法?

2 个答案:

答案 0 :(得分:1)

以下是获取前景窗口句柄的计时器示例代码,如果不是我,请将其设为Me

Private Declare Function GetForegroundWindow Lib "user32" () As IntPtr
Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As IntPtr) As Long

Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
    Dim focusedWindow As System.IntPtr
    focusedWindow = GetForegroundWindow()
    If Not Me.Handle.Equals(focusedWindow) Then
        SetForegroundWindow(Me.Handle)
    End If
End Sub

答案 1 :(得分:0)

在form1.shown中写下这个:

For i = 0 To 100
    Me.Activate()
Next

当您的表单出现时,这将会尝试100次。

相关问题