Dela via


Anvisningar: Visa felikoner för formulärverifiering med Windows Forms ErrorProvider-komponenten

Du kan använda en Windows Forms ErrorProvider-komponent för att visa en felikon när användaren anger ogiltiga data. Du måste ha minst två kontroller i formuläret för att kunna växla mellan dem och därmed aktivera verifieringskoden.

Så här visar du en felikon när en kontrolls värde är ogiltigt

  1. Lägg till två kontroller, till exempel textrutor, i ett Windows-formulär.

  2. Lägg till en ErrorProvider komponent i formuläret.

  3. Välj den första kontrollen och lägg till kod i dess Validating händelsehanterare. För att koden ska kunna köras korrekt måste proceduren vara ansluten till händelsen. Mer information finns i Hur man skapar händelsehanterare vid körtid för Windows Forms.

    Följande kod testar giltigheten för de data som användaren har angett. Om data är ogiltiga anropas metoden SetError. Det första argumentet i metoden SetError anger vilken kontroll som ska visas bredvid ikonen. Det andra argumentet är den feltext som ska visas.

    Private Sub TextBox1_Validating(ByVal Sender As Object, _
       ByVal e As System.ComponentModel.CancelEventArgs) Handles _
       TextBox1.Validating
          If Not IsNumeric(TextBox1.Text) Then
             ErrorProvider1.SetError(TextBox1, "Not a numeric value.")
          Else
             ' Clear the error.
             ErrorProvider1.SetError(TextBox1, "")
          End If
    End Sub
    
    protected void textBox1_Validating (object sender,
       System.ComponentModel.CancelEventArgs e)
    {
       try
       {
          int x = Int32.Parse(textBox1.Text);
          errorProvider1.SetError(textBox1, "");
       }
       catch (Exception ex)
       {
          errorProvider1.SetError(textBox1, "Not an integer value.");
       }
    }
    
    private:
       System::Void textBox1_Validating(System::Object ^  sender,
          System::ComponentModel::CancelEventArgs ^  e)
       {
          try
          {
             int x = Int32::Parse(textBox1->Text);
             errorProvider1->SetError(textBox1, "");
          }
          catch (System::Exception ^ ex)
          {
             errorProvider1->SetError(textBox1, "Not an integer value.");
          }
       }
    

    (Visual C#, Visual C++) Placera följande kod i formulärets konstruktor för att registrera händelsehanteraren.

    this.textBox1.Validating += new
    System.ComponentModel.CancelEventHandler(this.textBox1_Validating);
    
    this->textBox1->Validating += gcnew
       System::ComponentModel::CancelEventHandler
       (this, &Form1::textBox1_Validating);
    
  4. Kör projektet. Skriv ogiltiga (i det här exemplet icke-numeriska) data i det första fältet och tryck sedan på tabbtangenten för att gå till det andra. När felikonen visas pekar du på den med muspekaren för att se feltexten.

Se även