2017-09-20 3 views
0

Ich habe eine PowerShell-GUI mit Windows Form erstellt. Ich begegne einem Problem, wenn ich PasswordChar in das Textfeld schreibe, das funktioniert nur, wenn der Benutzer auf das Textfeld klickt. Wenn der Benutzer mit TAB in das Textfeld navigiert, funktioniert PasswordChar nicht. Ich habe mehrere Dinge ausprobiert, aber ohne Erfolg. hier ist mein letzter Versuch:Powershell Windows Form Textfeld

$textBox5 = New-Object Windows.Forms.MaskedTextBox 

$textBox5.Text = "Enter your Current password:" 

    $textBox5.Text = $null $textBox5.PasswordChar = '*' }) 

$textBox5.Add_TabIndexChanged({ 

    $textBox5.Text = "haha" }) 

$textBox5.Width = 203 
$textBox5.Height = 20 
$textBox5.location = new-object system.drawing.point(136,94) 
$textBox5.Font = "Lucida Bright,10" 
$Form.controls.Add($textBox5) 
+0

Ihren Code/Formatierung überprüfen. Diese scheinen nicht funktional zu sein und könnten sogar damit zusammenhängen, warum es nicht funktioniert. – marsze

+0

@marsze Also, wenn ich die falschen Unterprogramme verwende, was ist die richtige Verwendung? – lol

+0

Ich habe gerade bemerkt, dass seltsame Kommentare Ihren Code und mehrere Anweisungen in einer Zeile durcheinander bringen usw. ... bereinigen Sie zuerst Ihren Code. – marsze

Antwort

0

Von dem, was ich aus den Kommentaren verstehen Sie suchen so etwas wie diese.

$form = New-Object System.Windows.Forms.Form 

$textbox1 = New-Object System.Windows.Forms.TextBox 
$textbox1.Text = "Text Box 1" 

$defaulttext = "Enter Password" 
$textbox2 = New-Object System.Windows.Forms.MaskedTextBox 
$textbox2.Location = "0,40" 
$textbox2.Text = $defaulttext 
$textbox2.Add_Gotfocus(
    { 
     if($textbox2.Text -eq $defaulttext){ 
      $textbox2.Text = "" 
      $textbox2.PasswordChar = "*" 
     } 

    } 
) 


$form.controls.Add($textbox1) 
$form.controls.Add($textbox2) 


$form.ShowDialog() 

Dieser Code erstellt 2 Textfeld. Textbox2 hat zunächst den Text "Passwort eingeben". Sobald textbox2 den Fokus erhält, wird die anfängliche Zeichenfolge entfernt und die im Textfeld eingegebenen Buchstaben werden mit '*' maskiert.

initial form

Form once textbox2 gets focus

+1

ja !!! Das war mein Fehler !! Danke vielmals! – lol