2015-05-26 2 views
1
Function Button_Click() 
{ 
     Param([Parameter(Mandatory=$True)] 

      $telephone, 
      $calledtoSee, 
      $wantstoSeeyou, 
      $pleaseCall, 
      $willcallAgain, 
      $returningYourCall, 
      $ToSelection, 
      $from, 
      $telephoneNumber, 
      $message) 


    [boolean]$okayContinue=$true 
    [string]$radioSelectedText 
    [string]$comboBoxSectionText 
    [string]$persontoEmail 
    $callType 
    $messageCount 

    $comboBoxSectionText = $ToSelection.GetItemText($ToSelection.SelectedItem) 


    if($okayContinue){ 

        if($comboBoxSectionText -eq "Please Select Contact"){ 
         [System.Windows.Forms.MessageBox]::Show("Please Select Recipient") 
         $okayContinue=$false 

        } 

    } 

    if($okayContinue){ 

        if([string]::IsNullOrWhiteSpace($from.Text)){ 
         [System.Windows.Forms.MessageBox]::Show("Please Enter Who The Message is From") 
         $from.focus() 
         $okayContinue=$false 
        } 
    } 

    if($okayContinue){ 

        if([string]::IsNullOrWhiteSpace($telephoneNumber.Text)){ 
         [System.Windows.Forms.MessageBox]::Show("Please Enter Telephone Number") 
         $telephoneNumber.focus() 
         $okayContinue=$false 
        } 
    } 
    ####################################################################################################################################################### 

    if($okayContinue){ 

      if($telephone.Checked){ 
        $callType = $telephone.Text 
      } 
      elseif($calledtoSee.Checked){ 
        $callType = $calledtoSee.Text 
      } 
      elseif($wantstoSeeyou.Checked){ 
        $callType = $wantstoSeeyou.Text 
      } 
      elseif($pleaseCall.Checked){ 
        $callType= $pleaseCall.Text 
      } 
      elseif($willcallAgain.Checked){ 
        $callType = $willcallAgain.Text 
      } 
      elseif($returningYourCall.Checked){ 
        $callType = $returningYourCall.Text 
      } 
      else{ 
       [System.Windows.Forms.MessageBox]::Show("Please Select Call Type") 
       $okayContinue=$false 
      } 

    } 

    if($okayContinue){ 

     if([string]::IsNullOrWhiteSpace($message.Text)){ 

      [System.Windows.Forms.MessageBox]::Show("Please Enter Message") 
      $okayContinue=$false 
     } 


    } 





    if($okayContinue){ 

      $buildPerson=$comboBoxSectionText.Split(',') 

      $personObject = [pscustomobject]@{ 

        FirstName = $buildPerson[0] 
        LastName = $buildPerson[1] 
        Email = $buildPerson[2] 
      } 

      $messageObject = [pscustomobject]@{ 

        Message = $message.Text 
        MessageFor = $personObject 
        From = $from.Text 
        CallType = $callType 
        Telephone = $telephoneNumber.Text 
      } 
     } 

У меня есть форма с 6 переключателями и 2 текстовыми полями и выпадающим списком. Теперь, с точки зрения проверки правильности ошибки, я решил использовать логическое значение и проверить, правильно ли заполнены текстовые поля и выбран ли получатель. После того, как все заполнено, создается объект.Ошибка проверки Powershell

Я нахожусь на правильном пути, когда дело доходит до проверки правильности? Могу ли я справиться с этим лучше?

+0

Похоже, вы пытаетесь выполнить проверку данных. Также, если ваш код действительно работает, Code Review может быть лучше подходит для этого. – Matt

+0

@Matt - Спасибо. На ваш взгляд, я на правильном пути? Могу ли я справиться с этим лучше? –

+0

Вы должны добавить ScriptBlocks в события OnValidating. – JPBlanc

ответ

1

Если вам нужен полный программный контроль за проверкой или выполнение сложных проверок проверки, вы должны использовать события проверки, встроенные в большинство элементов управления Windows Forms. Каждый элемент управления, который принимает вход пользователя свободной формы, имеет событие Validating, которое будет происходить всякий раз, когда элементу управления требуется проверка данных. В методе Validating event-handling вы можете проверить ввод пользователя несколькими способами. Посмотрите на Event-Driven Validation. И больше объяснений здесь: Extending Windows Forms with a Custom Validation.

+0

Код, который я опубликовал, вы видите какие-либо логические ошибки? Я на правильном пути с точки зрения проверки? –

+0

Для меня код проверки не должен быть в событии OnClick, но в специальных событиях, таких как OnValidating, взгляните на статьи в моем ответе. – JPBlanc

+0

@ JPBlanc- Вы имеете в виду, что каждый элемент управления имеет свой собственный обработчик для проверки правильности? Вот что эти статьи, кажется, предлагают/демонстрируют –

Смежные вопросы