我编写了下面的程序来查找LDAP用户并返回属性。我需要它的工作方式如下:首先我将加载一个用户ID列表到ListBox1
,然后当我点击一个按钮属性(如DisplayName)将被追加到ListBox2
。现在我必须点击ListBox1
中的一个项目,然后点击按钮并且它可以工作,但是我希望它循环遍历ListBox1
中的每个ID,并将它们的属性写入ListBox2
,而无需点击每个用户ID 。我怎样才能把下面的每个循环放在一个?使用VB.NET循环遍历ListBox控件中的每个项目
Dim de As New DirectoryEntry("LDAP://test.com/DC=test,DC=com")
Dim LdapFilter As String = "(sAMAccountName=" & ListBox1.Text & ")"
Dim searcher As New DirectorySearcher(de, LdapFilter)
Dim result As SearchResult = searcher.FindOne()
ListBox2.Items.Add(result.Properties("displayName")(0).ToString())
更新
我试图用ListView
显示两列,如建议。然而,这不起作用。它只是增加了ListView
列:
Dim item As ListViewItem = ListView1.Items.Add("Username")
Dim item1 As ListViewItem = ListView1.Items.Add("Title")
For Each i As String In ListBox1.Items
Dim de As New DirectoryEntry("LDAP://test.com/DC=test,DC=com")
Dim LdapFilter As String = "(sAMAccountName=" & i & ")"
Dim searcher As New DirectorySearcher(de, LdapFilter)
Dim result As SearchResult = searcher.FindOne()
item.SubItems.Add(result.Properties("sAMAccountName")(0).ToString())
item1.SubItems.Add(result.Properties("title")(0).ToString())
Dim ADEntry As DirectoryEntry = New DirectoryEntry(result.Path)
If result.Properties("displayName") Is Nothing Then
On Error Resume Next
End If
Next
你是男人!第一个选项工作,因为我会有字符串在那里。你能告诉我如何制作2列标题,并把项目返回在那里?基本上我想要的是这样的:用户名会从第一个列表框中取出 用户名电子邮件地址 johndoe [email protected] – 2014-10-28 17:58:44
对于两列,我建议使用一个ListView控件,将View属性设置为' Details'。但是,DataGridView控件是另一种流行的选择。 – 2014-10-28 18:01:44
这里是[另一篇文章](http://stackoverflow.com/questions/15920322/outputting-2-lists-of-data-but-keeping-them-organised-in-vb/15926375#15926375)我在哪里展示如何在ListView控件中显示两列数据。这应该给你一个关于它是如何工作的好主意。 – 2014-10-28 18:04:54