다음을 통해 공유


방법: Windows Forms ErrorProvider 구성 요소를 사용하여 폼 유효성에 대한 오류 아이콘 표시

업데이트: 2007년 11월

Windows Forms ErrorProvider 구성 요소를 사용하면 사용자가 잘못된 데이터를 입력할 때 오류 아이콘을 표시할 수 있습니다. 폼에 최소 두 개의 컨트롤이 있어야 이러한 컨트롤 사이를 이동하여 유효성 검사 코드를 호출할 수 있습니다.

컨트롤 값이 잘못되었을 때 오류 아이콘을 표시하려면

  1. Windows Form에 텍스트 상자와 같은 컨트롤을 두 개 추가합니다.

  2. 폼에 ErrorProvider 구성 요소를 추가합니다.

  3. 첫 번째 컨트롤을 선택하고 해당 Validating 이벤트 처리기에 코드를 추가합니다. 코드가 올바르게 실행되려면 프로시저가 이벤트에 연결되어 있어야 합니다. 자세한 내용은 방법: 런타임에 Windows Forms의 이벤트 처리기 만들기를 참조하십시오.

    다음 코드는 사용자가 입력한 데이터의 유효성을 테스트합니다. 데이터가 잘못된 경우에는 SetError 메서드가 호출됩니다. SetError 메서드의 첫 번째 인수는 옆에 아이콘을 표시할 컨트롤을 지정합니다. 두 번째 인수는 표시할 오류 텍스트입니다.

    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 e)
       {
          errorProvider1.SetError(textBox1, "Not an integer value.");
       }
    }
    
    protected void textBox1_Validating(Object sender, CancelEventArgs e) 
    {
       try 
       {
          int x = Int32.Parse(textBox1.get_Text());
          errorProvider1.SetError(textBox1, "");
       }
       catch(Exception exp)
       {
          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++) 폼의 생성자에 다음 코드를 배치하여 이벤트 처리기를 등록합니다.

    this.textBox1.Validating += new
    System.ComponentModel.CancelEventHandler(this.textBox1_Validating);
    
    this->textBox1->Validating += gcnew
       System::ComponentModel::CancelEventHandler
       (this, &Form1::textBox1_Validating);
    
  4. 프로젝트를 실행합니다. 첫 번째 컨트롤에 잘못된 데이터(여기서는 숫자가 아닌 데이터)를 입력한 다음 두 번째 컨트롤로 이동합니다. 오류 아이콘이 표시되면 마우스 포인터로 가리켜서 오류 텍스트를 봅니다.

참고 항목

작업

방법: Windows Forms ErrorProvider 구성 요소를 사용하여 데이터 집합에 있는 오류 보기

참조

SetError

ErrorProvider 구성 요소 개요(Windows Forms)