ボタンをクリックしたときに、以下のコードを使用してActive Directoryのユーザー属性をクリアしています。私はこれらのボタンのいくつかを持っています(タイトル、部署、住所、市、州、郵便番号、国、電話番号ごとに1つずつ)。 8つのボタンのクリックごとに同じコードを下に置くことができます。しかし、私はそれをきれいにし、単一のサブ・ルーチンへの各ボタンの名前を渡すために、コードの量を減らすかもしれないと思ったので、あなたは一度だけではない8回を、それを必要とし、その後、使用機能にボタン名を渡す
dirEntryResults.Properties("btnName").Clear()
しかし、ボタン名をサブルーチンに渡すことが可能かどうかはわかりません。これは可能ですか?あれば、どうですか?
Private Sub ClearTitle_Click(sender As Object, e As EventArgs) Handles ClearTitle.Click
Dim ADName As String = GetLogonName()
Dim dirEntry As DirectoryEntry = GetDirectoryEntry()
Dim dirSearcher As DirectorySearcher = New DirectorySearcher(dirEntry)
dirSearcher.Filter = "(&(objectClass=user)(objectCategory=person)(sAMAccountName=test.account))"
dirSearcher.SearchScope = SearchScope.Subtree
Dim searchResults As SearchResult = dirSearcher.FindOne()
If Not searchResults Is Nothing Then
Dim dirEntryResults As New DirectoryEntry(searchResults.Path)
dirEntryResults.Properties("title").Clear()
dirEntryResults.CommitChanges()
dirEntryResults.Close()
MsgBox("Attribute Cleared", MsgBoxStyle.OkOnly, "Success")
End If
dirEntry.Close()
End Sub
イベント引数を見てください.1つはクリックされたボタンである「送信者」です。 – Plutonix
送信者paramは、クリックイベントを発生させたボタンです。型は、送信者をボタンオブジェクトにキャストし、ヘルパーメソッドで設計して渡すときにProperty値を抽出します。 – Gururaj