我有一个向我显示所有ADUser的文本框。我希望能够在文本字段中搜索这些用户。因此,当我输入文本字段并按下例如" tab"出现正确的用户帐户。我有一个工作的Keydown功能,但它离我想要的很远。有人可以帮我解决这个问题吗?
这是我的Powershell Script ::
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
#GUI Interface
$Form = New-Object System.Windows.Forms.Form
$Form.Size = New-Object System.Drawing.Size(500,400)
$Form.Text = "Benutzer Löschen"
#-----Labels-----
#Label Benutzer Löschen
$Label = New-Object System.Windows.Forms.Label
$Label.Location = New-Object System.Drawing.Size(200,10)
$Label.Size = New-Object System.Drawing.Size(200,20)
$Label.Text = "Benutzer Löschen"
$Label.Name = "Benutzer Löschen"
$Form.Controls.Add($Label)
#--------Buttons-------
#Button Cancel
$BTcancel = New-Object System.Windows.Forms.Button
$BTcancel.Location = New-Object System.Drawing.Size(400,200)
$BTcancel.Size = New-Object System.Drawing.Size(75,23)
$BTcancel.Text = "Cancel"
$BTcancel.Name = "Cancel"
$BTcancel.Add_Click({$Form.Close()})
$Form.Controls.Add($BTcancel)
#Button Löschen
$BTlöschen = New-Object System.Windows.Forms.Button
$BTlöschen.Location = New-Object System.Drawing.Size(320,200)
$BTlöschen.Size = New-Object System.Drawing.Size(75,23)
$BTlöschen.Text = "Löschen"
$BTlöschen.Name = "Löschen"
$Form.Controls.Add($BTlöschen)
#-----ListBox-----
#User Anzeige
$Useranzeige = New-Object System.Windows.Forms.ListBox
$Useranzeige.Location = New-Object System.Drawing.Size(90,50)
$Useranzeige.Size = New-Object System.Drawing.Size(300,100)
$Form.Controls.Add($Useranzeige)
#-----Textbox-----
#Suchfeld
$Suchfeld = New-Object System.Windows.Forms.TextBox
$Suchfeld.Location = New-Object System.Drawing.Size(90,160)
$Suchfeld.Size = New-Object System.Drawing.Size(300,20)
$Form.Controls.Add($Suchfeld)
#---Funktionen---
#Useranzeige
Import-Module ActiveDirectory
$name = Get-ADUser -Filter {name -like '*'}
foreach ($i in $name)
{$Useranzeige.Items.Add($i.Name + "`t")}
#BTlöschen
$BTlöschen.Add_Click({
Remove-ADUser -Identity $Suchfeld.Text
})
#Clear Inhalt vom Suchfeld
$BTlöschen.Add_Click{$Suchfeld.Clear()}
#Search Funkion
$Suchfeld.Add_KeyDown({
if ($_.Control -and $_.KeyCode -eq "F") {
$stringToFind = [Microsoft.VisualBasic.Interaction]::InputBox("Find what", "Find")
$pos = $Useranzeige.Text.IndexOf($stringToFind);
if ($pos -ne -1) {
$Useranzeige.SelectionStart = $pos;
$Useranzeige.SelectionLength = $stringToFind.Length;
}
}
})
[void] $Form.ShowDialog()
答案 0 :(得分:1)
您的主要问题似乎是您尝试搜索Text
的{{1}}属性 - 这将是空的。
浏览项目列表,找到匹配的名称:
ListBox