我有一個vb.net應用程序,我想成爲a)可見和b)最活躍的時候,將activewindow設置爲我的要求 - 這部分我已經覆蓋了罰款。循環背景工作
我希望能夠做的是使用BackgroundWorker的主動監控這種在一個連續的循環 - 我再次報道了這關的罰款。
我遇到的問題是,當我選擇組合框時,由於bgw的干擾,我無法進行選擇 - 就像當我點擊組合框來顯示列表時,bgw似乎幾乎做了一個從關閉列表的組合框中單擊鼠標。
任何幫助將不勝感激。
這裏是我的代碼:
Private Delegate Sub progressDelegate()
Private Sub frmApp_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Me.bgwActiveWindow.RunWorkerAsync()
End Sub
Private Sub bgwActiveWindow_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles bgwActiveWindow.DoWork
Dim CheckWindow As progressDelegate
CheckWindow = New progressDelegate(AddressOf SetAppTopMost)
Me.Invoke(CheckWindow)
System.Threading.Thread.Sleep(100)
End Sub
Private Sub SetAppTopMost()
Dim bol As Boolean
If getActiveWindowTitle.IndexOf("Microsoft Outlook") <> -1 Or _
getActiveWindowTitle.IndexOf(My.Settings.AppName) <> -1 Then
bol = True
Else
bol = False
End If
Me.Visible = bol
Me.TopMost = bol
End Sub
Private Sub bgwActiveWindow_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles bgwActiveWindow.RunWorkerCompleted
bgwActiveWindow.RunWorkerAsync()
End Sub
這很容易找出你自己的。簡化代碼。刪除後臺工作人員。你很可能會發現設置'Visible'或'TopMost'屬性正在關閉下拉列表。 –
如果刪除了背景工作者,則沒有適當的過程來主動觀看活動窗口選擇,即只有當Outlook是活動窗口時才應顯示該應用程序,否則應設置爲隱藏而不是最上層。 – user3664128
我的評論是關於你調試你自己的代碼。這不是一個解決方案。 –