Benutzer mit den meisten Antworten
Ein Text Feld prüfen ob es leer ist

Frage
-
Hallo zusammen
ich experemntiere zur Zeit mit PowerShell. Dazu habe ich ein einfaches Formular genommen:
clear [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing") [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") $objForm = New-Object System.Windows.Forms.Form $objForm.Text = "Data Entry Form" $objForm.Size = New-Object System.Drawing.Size(300,600) $objForm.StartPosition = "CenterScreen" $OKButton = New-Object System.Windows.Forms.Button $OKButton.Location = New-Object System.Drawing.Size(75,250) $OKButton.Size = New-Object System.Drawing.Size(75,23) $OKButton.Text = "OK" $OKButton.Add_Click( {$x=$objTextBox.Text; $y=$objTextBox2.Text; $z=$objTextBox3.Text; $q=$objListbox.SelectedItems; $objForm.Close()}) $objForm.Controls.Add($OKButton) $CancelButton = New-Object System.Windows.Forms.Button $CancelButton.Location = New-Object System.Drawing.Size(150,250) $CancelButton.Size = New-Object System.Drawing.Size(75,23) $CancelButton.Text = "Cancel" $CancelButton.Add_Click({$objForm.Close();$cancel = $true}) $objForm.Controls.Add($CancelButton) $objLabel = New-Object System.Windows.Forms.Label $objLabel.Location = New-Object System.Drawing.Size(10,20) $objLabel.Size = New-Object System.Drawing.Size(280,20) $objLabel.Text = "Please enter the information in the space below:" $objForm.Controls.Add($objLabel) $objTextBox = New-Object System.Windows.Forms.TextBox $objTextBox.Location = New-Object System.Drawing.Size(10,40) $objTextBox.Size = New-Object System.Drawing.Size(260,20) $objForm.Controls.Add($objTextBox) $objTextBox2 = New-Object System.Windows.Forms.TextBox $objTextBox2.Location = New-Object System.Drawing.Size(10,60) $objTextBox2.Size = New-Object System.Drawing.Size(260,20) $objForm.Controls.Add($objTextBox2) $objTextBox3 = New-Object System.Windows.Forms.TextBox $objTextBox3.Location = New-Object System.Drawing.Size(10,80) $objTextBox3.Size = New-Object System.Drawing.Size(260,20) $objForm.Controls.Add($objTextBox3) $objListbox = New-Object System.Windows.Forms.Listbox $objListbox.Location = New-Object System.Drawing.Size(10,100) $objListbox.Size = New-Object System.Drawing.Size(260,20) $objListBox.Height = 80 [void] $objListbox.Items.Add("Item 1") [void] $objListbox.Items.Add("Item 2") [void] $objListbox.Items.Add("Item 3") [void] $objListbox.Items.Add("Item 4") [void] $objListbox.Items.Add("Item 5") [void] $objListbox.Items.Add("Item 6") [void] $objListbox.Items.Add("Item 7") [void] $objListbox.Items.Add("Item 8") [void] $objListbox.Items.Add("Item 9") [void] $objListbox.Items.Add("Item 10") $objForm.Controls.Add($objListbox) $objForm.Topmost = $True $objForm.Add_Shown({$objForm.Activate()}) [void] $objForm.ShowDialog() if ($cancel) {return} #Beim Betaetigen das Cancel Button wird das Script beendet $x $y $z $q
Wie kann ich überprüfen ob ein Feld leer geblieben ist. Bei manchen Felder soll eine Eingabe Pflicht sein. Nach dem OK-Klick sollte das Script weiterlaufen, oder ggf. ein PopUp, oder so, erscheinen, dass das Feld XY leer ist. Dann sollte man die Möglichkeit haben dort etwas einzufügen. und nochmals mit Ok bestätigen.Kann mir jemen einen Ansatz geben?
Gruss Patric
Antworten
-
z.b. in dem du den Eventhandler so abänderst:
$OKButton.Add_Click( { $x=$objTextBox.Text; $y=$objTextBox2.Text; $z=$objTextBox3.Text; $q=$objListbox.SelectedItems; if ( !($x.trim()) -or !($y.trim()) -or !($z.trim()) ) { [void] [Windows.Forms.MessageBox]::Show("Bitte alle Felder ausfüllen!", "Fehler", [Windows.Forms.MessageBoxButtons]::ok, [Windows.Forms.MessageBoxIcon]::Warning) } else { $objForm.Close() } })
Es wird geprüft ob in jeder der Textbox-Variablen nach Abzug von Leerzeichen ( .trim() ) noch etwas enthalten ist. Falls nicht ( !() ), wird das Popup erstellt und die Form nicht geschlossen.
Grüße, Denniver
Blog: http://bytecookie.wordpress.com
Hilf mit und markiere hilfreiche Beiträge als "Hilfreich" und Beiträge die deine Frage ganz oder teilweise beantwortet haben als "Antwort".- Als Antwort markiert twisters77 Donnerstag, 25. August 2011 14:25
Alle Antworten
-
z.b. in dem du den Eventhandler so abänderst:
$OKButton.Add_Click( { $x=$objTextBox.Text; $y=$objTextBox2.Text; $z=$objTextBox3.Text; $q=$objListbox.SelectedItems; if ( !($x.trim()) -or !($y.trim()) -or !($z.trim()) ) { [void] [Windows.Forms.MessageBox]::Show("Bitte alle Felder ausfüllen!", "Fehler", [Windows.Forms.MessageBoxButtons]::ok, [Windows.Forms.MessageBoxIcon]::Warning) } else { $objForm.Close() } })
Es wird geprüft ob in jeder der Textbox-Variablen nach Abzug von Leerzeichen ( .trim() ) noch etwas enthalten ist. Falls nicht ( !() ), wird das Popup erstellt und die Form nicht geschlossen.
Grüße, Denniver
Blog: http://bytecookie.wordpress.com
Hilf mit und markiere hilfreiche Beiträge als "Hilfreich" und Beiträge die deine Frage ganz oder teilweise beantwortet haben als "Antwort".- Als Antwort markiert twisters77 Donnerstag, 25. August 2011 14:25