我編寫了下面的程序來查找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