在我正在开发的程序中,用户可以通过资产 ID 标签在 AD 中搜索计算机。我所有这些工作都很好,但我想知道是否有办法通过进度条显示搜索进度。
为了进行搜索,我遵循了这段代码,我的几乎完全相同。 http://msdn.microsoft.com/en-us/library/ms973834.aspx#dotnetadsearch_topic9
在我正在开发的程序中,用户可以通过资产 ID 标签在 AD 中搜索计算机。我所有这些工作都很好,但我想知道是否有办法通过进度条显示搜索进度。
为了进行搜索,我遵循了这段代码,我的几乎完全相同。 http://msdn.microsoft.com/en-us/library/ms973834.aspx#dotnetadsearch_topic9
假设您使用了链接中提供的整个示例并且您正在后台线程上运行搜索,请添加一个名为 ProgressBar1 的进度条并尝试以下操作:
线下:
Private Delegate Sub displayResult(ByVal textEntry As String)
添加这一行:
Private Delegate Sub maxProgress(ByVal maxProgress As Integer)
在这些行下面:
Public Event ResultFound(ByVal result As SearchResult)
Public Event SearchCompleted(ByVal entriesFound As Integer)
添加这一行:
Public Event StartProgressBar(ByVal maxProgress As Integer)
将以下代码添加到StartSearch()
子中:
Dim queryResults As SearchResultCollection
RaiseEvent StartProgressBar(queryResults.Count)
添加以下过程:
Private Sub StartProgress(ByVal maxProgress As Integer) Handles bkg.StartProgressBar
Dim start as New maxProgress(AddressOf UpdateProgress)
Me.Invoke(start, New Object() {maxProgress})
End Sub
Private Sub UpdateProgress(ByVal maxProgress as Integer)
ProgressBar1.Maximum = maxProgress
ProgressBar1.Step = 1
End Sub
最后将此行添加到bkg_ResultFound
子(If
块外)
ProgressBar1.PerformStep()