进度条报告AD搜索的状态

时间:2013-07-22 17:40:43

标签: vb.net active-directory

在我正在处理的程序中,用户可以通过资产ID标记在AD中搜索计算机。我已经完成了所有工作,但我想知道是否有办法通过进度条显示搜索的进度。

为了进行搜索,我遵循了这个代码,我的几乎完全相同。 http://msdn.microsoft.com/en-us/library/ms973834.aspx#dotnetadsearch_topic9

1 个答案:

答案 0 :(得分:1)

假设您使用了链接中提供的整个示例,并且您正在后台线程上运行搜索,请添加名为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() sub:

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()