다음을 통해 공유


Control.Invalidate 메서드

정의

특정 컨트롤 영역을 무효화하고 그리기 메시지를 컨트롤로 보냅니다.

오버로드

Invalidate(Region, Boolean)

지정된 컨트롤 영역을 무효화하고, 이 영역을 다음 그리기 작업에서 다시 그릴 컨트롤의 업데이트 영역에 추가하고, 그리기 메시지를 컨트롤로 보냅니다. 또한 필요에 따라 컨트롤에 할당된 자식 컨트롤을 무효화합니다.

Invalidate(Rectangle, Boolean)

지정된 컨트롤 영역을 무효화하고, 이 영역을 다음 그리기 작업에서 다시 그릴 컨트롤의 업데이트 영역에 추가하고, 그리기 메시지를 컨트롤로 보냅니다. 또한 필요에 따라 컨트롤에 할당된 자식 컨트롤을 무효화합니다.

Invalidate(Region)

지정된 컨트롤 영역을 무효화하고, 이 영역을 다음 그리기 작업에서 다시 그릴 컨트롤의 업데이트 영역에 추가하고, 그리기 메시지를 컨트롤로 보냅니다.

Invalidate(Boolean)

특정 컨트롤 영역을 무효화하고 그리기 메시지를 컨트롤로 보냅니다. 또한 필요에 따라 컨트롤에 할당된 자식 컨트롤을 무효화합니다.

Invalidate()

컨트롤의 전체 화면을 무효화하고 컨트롤을 다시 그립니다.

Invalidate(Rectangle)

지정된 컨트롤 영역을 무효화하고, 이 영역을 다음 그리기 작업에서 다시 그릴 컨트롤의 업데이트 영역에 추가하고, 그리기 메시지를 컨트롤로 보냅니다.

Invalidate(Region, Boolean)

지정된 컨트롤 영역을 무효화하고, 이 영역을 다음 그리기 작업에서 다시 그릴 컨트롤의 업데이트 영역에 추가하고, 그리기 메시지를 컨트롤로 보냅니다. 또한 필요에 따라 컨트롤에 할당된 자식 컨트롤을 무효화합니다.

public:
 void Invalidate(System::Drawing::Region ^ region, bool invalidateChildren);
public void Invalidate (System.Drawing.Region region, bool invalidateChildren);
public void Invalidate (System.Drawing.Region? region, bool invalidateChildren);
member this.Invalidate : System.Drawing.Region * bool -> unit
Public Sub Invalidate (region As Region, invalidateChildren As Boolean)

매개 변수

region
Region

무효화할 Region입니다.

invalidateChildren
Boolean

컨트롤의 자식 컨트롤을 무효화하는 경우 true이고, 그렇지 않으면 false입니다.

설명

메서드를 Invalidate 호출해도 동기 페인트가 강제로 적용되지 않습니다. 동기 페인트를 강제로 적용하려면 메서드를 호출한 Update 후 메서드를 Invalidate 호출합니다. 매개 변수 없이 이 메서드를 호출하면 전체 클라이언트 영역이 업데이트 지역에 추가됩니다.

추가 정보

적용 대상

Invalidate(Rectangle, Boolean)

지정된 컨트롤 영역을 무효화하고, 이 영역을 다음 그리기 작업에서 다시 그릴 컨트롤의 업데이트 영역에 추가하고, 그리기 메시지를 컨트롤로 보냅니다. 또한 필요에 따라 컨트롤에 할당된 자식 컨트롤을 무효화합니다.

public:
 void Invalidate(System::Drawing::Rectangle rc, bool invalidateChildren);
public void Invalidate (System.Drawing.Rectangle rc, bool invalidateChildren);
member this.Invalidate : System.Drawing.Rectangle * bool -> unit
Public Sub Invalidate (rc As Rectangle, invalidateChildren As Boolean)

매개 변수

rc
Rectangle

무효화할 영역을 나타내는 Rectangle입니다.

invalidateChildren
Boolean

컨트롤의 자식 컨트롤을 무효화하는 경우 true이고, 그렇지 않으면 false입니다.

설명

메서드를 Invalidate 호출해도 동기 페인트가 강제로 적용되지 않습니다. 동기 페인트를 강제로 적용하려면 메서드를 호출한 Update 후 메서드를 Invalidate 호출합니다. 매개 변수 없이 이 메서드를 호출하면 전체 클라이언트 영역이 업데이트 지역에 추가됩니다.

추가 정보

적용 대상

Invalidate(Region)

지정된 컨트롤 영역을 무효화하고, 이 영역을 다음 그리기 작업에서 다시 그릴 컨트롤의 업데이트 영역에 추가하고, 그리기 메시지를 컨트롤로 보냅니다.

public:
 void Invalidate(System::Drawing::Region ^ region);
public void Invalidate (System.Drawing.Region region);
public void Invalidate (System.Drawing.Region? region);
member this.Invalidate : System.Drawing.Region -> unit
Public Sub Invalidate (region As Region)

매개 변수

region
Region

무효화할 Region입니다.

설명

메서드를 Invalidate 호출해도 동기 페인트가 강제로 적용되지 않습니다. 동기 페인트를 강제로 적용하려면 메서드를 호출한 Update 후 메서드를 Invalidate 호출합니다. 매개 변수 없이 이 메서드를 호출하면 전체 클라이언트 영역이 업데이트 지역에 추가됩니다.

추가 정보

적용 대상

Invalidate(Boolean)

특정 컨트롤 영역을 무효화하고 그리기 메시지를 컨트롤로 보냅니다. 또한 필요에 따라 컨트롤에 할당된 자식 컨트롤을 무효화합니다.

public:
 void Invalidate(bool invalidateChildren);
public void Invalidate (bool invalidateChildren);
member this.Invalidate : bool -> unit
Public Sub Invalidate (invalidateChildren As Boolean)

매개 변수

invalidateChildren
Boolean

컨트롤의 자식 컨트롤을 무효화하는 경우 true이고, 그렇지 않으면 false입니다.

설명

메서드를 Invalidate 호출해도 동기 페인트가 강제로 적용되지 않습니다. 동기 페인트를 강제로 적용하려면 메서드를 호출한 Update 후 메서드를 Invalidate 호출합니다. 매개 변수 없이 이 메서드를 호출하면 전체 클라이언트 영역이 업데이트 지역에 추가됩니다.

추가 정보

적용 대상

Invalidate()

컨트롤의 전체 화면을 무효화하고 컨트롤을 다시 그립니다.

public:
 void Invalidate();
public void Invalidate ();
member this.Invalidate : unit -> unit
Public Sub Invalidate ()

예제

다음 코드 예제에서는 사용자가 이미지 또는 이미지 파일을 폼으로 끌어 놓을 때 표시되도록 합니다. 메서드는 OnPaint 양식이 그려질 때마다 이미지를 다시 칠하도록 재정의됩니다. 그렇지 않으면 이미지가 다음 다시 칠할 때까지만 유지됩니다. 이벤트 처리 메서드는 DragEnter 폼으로 끌 데이터의 형식을 결정하고 적절한 피드백을 제공합니다. DragDrop 데이터에서 를 만들 수 있는 경우 Image 이벤트 처리 메서드는 양식에 이미지를 표시합니다. DragEventArgs.XDragEventArgs.Y 값은 화면 좌표이므로 예제에서는 메서드를 PointToClient 사용하여 클라이언트 좌표로 변환합니다.

private:
   Image^ picture;
   Point pictureLocation;

public:
   Form1()
   {
      
      // Enable drag-and-drop operations and
      // add handlers for DragEnter and DragDrop.
      this->AllowDrop = true;
      this->DragDrop += gcnew DragEventHandler( this, &Form1::Form1_DragDrop );
      this->DragEnter += gcnew DragEventHandler( this, &Form1::Form1_DragEnter );
   }

protected:
   virtual void OnPaint( PaintEventArgs^ e ) override
   {
      
      // If there is an image and it has a location,
      // paint it when the Form is repainted.
      Form::OnPaint( e );
      if ( this->picture != nullptr && this->pictureLocation != Point::Empty )
      {
         e->Graphics->DrawImage( this->picture, this->pictureLocation );
      }
   }

private:
   void Form1_DragDrop( Object^ /*sender*/, DragEventArgs^ e )
   {
      
      // Handle FileDrop data.
      if ( e->Data->GetDataPresent( DataFormats::FileDrop ) )
      {
         // Assign the file names to a String* array, in
         // case the user has selected multiple files.
         array<String^>^files = (array<String^>^)e->Data->GetData( DataFormats::FileDrop );
         try
         {
            // Assign the first image to the picture variable.
            this->picture = Image::FromFile( files[ 0 ] );
            
            // Set the picture location equal to the drop point.
            this->pictureLocation = this->PointToClient( Point(e->X,e->Y) );
         }
         catch ( Exception^ ex ) 
         {
            MessageBox::Show( ex->Message );
            return;
         }

      }
      
      // Handle Bitmap data.
      if ( e->Data->GetDataPresent( DataFormats::Bitmap ) )
      {
         try
         {
            // Create an Image and assign it to the picture variable.
            this->picture = dynamic_cast<Image^>(e->Data->GetData( DataFormats::Bitmap ));

            // Set the picture location equal to the drop point.
            this->pictureLocation = this->PointToClient( Point(e->X,e->Y) );
         }
         catch ( Exception^ ex ) 
         {
            MessageBox::Show( ex->Message );
            return;
         }
      }
      
      // Force the form to be redrawn with the image.
      this->Invalidate();
   }

   void Form1_DragEnter( Object^ /*sender*/, DragEventArgs^ e )
   {
      // If the data is a file or a bitmap, display the copy cursor.
      if ( e->Data->GetDataPresent( DataFormats::Bitmap ) || e->Data->GetDataPresent( DataFormats::FileDrop ) )
      {
         e->Effect = DragDropEffects::Copy;
      }
      else
      {
         e->Effect = DragDropEffects::None;
      }
   }
private Image picture;
private Point pictureLocation;

public Form1()
{
   // Enable drag-and-drop operations and 
   // add handlers for DragEnter and DragDrop.
   this.AllowDrop = true;
   this.DragDrop += new DragEventHandler(this.Form1_DragDrop);
   this.DragEnter += new DragEventHandler(this.Form1_DragEnter);
}

protected override void OnPaint(PaintEventArgs e)
{
   // If there is an image and it has a location, 
   // paint it when the Form is repainted.
   base.OnPaint(e);
   if(this.picture != null && this.pictureLocation != Point.Empty)
   {
      e.Graphics.DrawImage(this.picture, this.pictureLocation);
   }
}

private void Form1_DragDrop(object sender, DragEventArgs e)
{
   // Handle FileDrop data.
   if(e.Data.GetDataPresent(DataFormats.FileDrop) )
   {
      // Assign the file names to a string array, in 
      // case the user has selected multiple files.
      string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
      try
      {
         // Assign the first image to the picture variable.
         this.picture = Image.FromFile(files[0]);
         // Set the picture location equal to the drop point.
         this.pictureLocation = this.PointToClient(new Point(e.X, e.Y) );
      }
      catch(Exception ex)
      {
         MessageBox.Show(ex.Message);
         return;
      }
   }

   // Handle Bitmap data.
   if(e.Data.GetDataPresent(DataFormats.Bitmap) )
   {
      try
      {
         // Create an Image and assign it to the picture variable.
         this.picture = (Image)e.Data.GetData(DataFormats.Bitmap);
         // Set the picture location equal to the drop point.
         this.pictureLocation = this.PointToClient(new Point(e.X, e.Y) );
      }
      catch(Exception ex)
      {
         MessageBox.Show(ex.Message);
         return;
      }
   }
   // Force the form to be redrawn with the image.
   this.Invalidate();
}

private void Form1_DragEnter(object sender, DragEventArgs e)
{
   // If the data is a file or a bitmap, display the copy cursor.
   if (e.Data.GetDataPresent(DataFormats.Bitmap) || 
      e.Data.GetDataPresent(DataFormats.FileDrop) ) 
   {
      e.Effect = DragDropEffects.Copy;
   }
   else
   {
      e.Effect = DragDropEffects.None;
   }
}
Private picture As Image
Private pictureLocation As Point

Public Sub New()
   ' Enable drag-and-drop operations.
   Me.AllowDrop = True
End Sub

Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
   MyBase.OnPaint(e)

   ' If there is an image and it has a location, 
   ' paint it when the Form is repainted.
   If (Me.picture IsNot Nothing) And _
     Not (Me.pictureLocation.Equals(Point.Empty)) Then
      e.Graphics.DrawImage(Me.picture, Me.pictureLocation)
   End If
End Sub

Private Sub Form1_DragDrop(ByVal sender As Object, _
  ByVal e As DragEventArgs) Handles MyBase.DragDrop
   ' Handle FileDrop data.
   If e.Data.GetDataPresent(DataFormats.FileDrop) Then
      ' Assign the file names to a string array, in 
      ' case the user has selected multiple files.
      Dim files As String() = CType(e.Data.GetData(DataFormats.FileDrop), String())
      Try
         ' Assign the first image to the 'picture' variable.
         Me.picture = Image.FromFile(files(0))
         ' Set the picture location equal to the drop point.
         Me.pictureLocation = Me.PointToClient(New Point(e.X, e.Y))
      Catch ex As Exception
         MessageBox.Show(ex.Message)
         Return
      End Try
   End If

   ' Handle Bitmap data.
   If e.Data.GetDataPresent(DataFormats.Bitmap) Then
      Try
         ' Create an Image and assign it to the picture variable.
         Me.picture = CType(e.Data.GetData(DataFormats.Bitmap), Image)
         ' Set the picture location equal to the drop point.
         Me.pictureLocation = Me.PointToClient(New Point(e.X, e.Y))
      Catch ex As Exception
         MessageBox.Show(ex.Message)
         Return
      End Try
   End If

   ' Force the form to be redrawn with the image.
   Me.Invalidate()
End Sub

Private Sub Form1_DragEnter(ByVal sender As Object, _
  ByVal e As DragEventArgs) Handles MyBase.DragEnter
   ' If the data is a file or a bitmap, display the copy cursor.
   If e.Data.GetDataPresent(DataFormats.Bitmap) _
      Or e.Data.GetDataPresent(DataFormats.FileDrop) Then
      e.Effect = DragDropEffects.Copy
   Else
      e.Effect = DragDropEffects.None
   End If
End Sub

설명

메서드를 Invalidate 호출해도 동기 페인트가 강제로 적용되지 않습니다. 동기 페인트를 강제로 적용하려면 메서드를 호출한 Update 후 메서드를 Invalidate 호출합니다. 매개 변수 없이 이 메서드를 호출하면 전체 클라이언트 영역이 업데이트 지역에 추가됩니다.

추가 정보

적용 대상

Invalidate(Rectangle)

지정된 컨트롤 영역을 무효화하고, 이 영역을 다음 그리기 작업에서 다시 그릴 컨트롤의 업데이트 영역에 추가하고, 그리기 메시지를 컨트롤로 보냅니다.

public:
 void Invalidate(System::Drawing::Rectangle rc);
public void Invalidate (System.Drawing.Rectangle rc);
member this.Invalidate : System.Drawing.Rectangle -> unit
Public Sub Invalidate (rc As Rectangle)

매개 변수

rc
Rectangle

무효화할 영역을 나타내는 Rectangle입니다.

설명

메서드를 Invalidate 호출해도 동기 페인트가 강제로 적용되지 않습니다. 동기 페인트를 강제로 적용하려면 메서드를 호출한 Update 후 메서드를 Invalidate 호출합니다. 매개 변수 없이 이 메서드를 호출하면 전체 클라이언트 영역이 업데이트 지역에 추가됩니다.

추가 정보

적용 대상