Partilhar via


Control.Invalidate Método

Definição

Invalida a uma região específica do controle e faz com que uma mensagem de pintura seja enviada para o controle.

Sobrecargas

Invalidate(Region, Boolean)

Invalida a região especificada do controle (a adiciona à região de atualização do controle, que é a área que será repintada na próxima operação de pintura) e envia uma mensagem ao controle. Opcionalmente, invalida os controles filho atribuídos ao controle.

Invalidate(Rectangle, Boolean)

Invalida a região especificada do controle (a adiciona à região de atualização do controle, que é a área que será repintada na próxima operação de pintura) e envia uma mensagem ao controle. Opcionalmente, invalida os controles filho atribuídos ao controle.

Invalidate(Region)

Invalida a região especificada do controle (a adiciona à região de atualização do controle, que é a área que será repintada na próxima operação de pintura) e envia uma mensagem ao controle.

Invalidate(Boolean)

Invalida a uma região específica do controle e faz com que uma mensagem de pintura seja enviada para o controle. Opcionalmente, invalida os controles filho atribuídos ao controle.

Invalidate()

Invalida a superfície inteira do controle e faz com que o controle seja redesenhado.

Invalidate(Rectangle)

Invalida a região especificada do controle (a adiciona à região de atualização do controle, que é a área que será repintada na próxima operação de pintura) e envia uma mensagem ao controle.

Invalidate(Region, Boolean)

Invalida a região especificada do controle (a adiciona à região de atualização do controle, que é a área que será repintada na próxima operação de pintura) e envia uma mensagem ao controle. Opcionalmente, invalida os controles filho atribuídos ao controle.

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)

Parâmetros

region
Region

O Region a ser invalidado.

invalidateChildren
Boolean

true para invalidar os controles filho do controle; caso contrário, false.

Comentários

Chamar o Invalidate método não força uma pintura síncrona; para forçar uma pintura síncrona, chame o Update método depois de chamar o Invalidate método . Quando esse método é chamado sem parâmetros, toda a área do cliente é adicionada à região de atualização.

Confira também

Aplica-se a

Invalidate(Rectangle, Boolean)

Invalida a região especificada do controle (a adiciona à região de atualização do controle, que é a área que será repintada na próxima operação de pintura) e envia uma mensagem ao controle. Opcionalmente, invalida os controles filho atribuídos ao controle.

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)

Parâmetros

rc
Rectangle

Um Rectangle que representa a região a ser invalidada.

invalidateChildren
Boolean

true para invalidar os controles filho do controle; caso contrário, false.

Comentários

Chamar o Invalidate método não força uma pintura síncrona; para forçar uma pintura síncrona, chame o Update método depois de chamar o Invalidate método . Quando esse método é chamado sem parâmetros, toda a área do cliente é adicionada à região de atualização.

Confira também

Aplica-se a

Invalidate(Region)

Invalida a região especificada do controle (a adiciona à região de atualização do controle, que é a área que será repintada na próxima operação de pintura) e envia uma mensagem ao controle.

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)

Parâmetros

region
Region

O Region a ser invalidado.

Comentários

Chamar o Invalidate método não força uma pintura síncrona; para forçar uma pintura síncrona, chame o Update método depois de chamar o Invalidate método . Quando esse método é chamado sem parâmetros, toda a área do cliente é adicionada à região de atualização.

Confira também

Aplica-se a

Invalidate(Boolean)

Invalida a uma região específica do controle e faz com que uma mensagem de pintura seja enviada para o controle. Opcionalmente, invalida os controles filho atribuídos ao controle.

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

Parâmetros

invalidateChildren
Boolean

true para invalidar os controles filho do controle; caso contrário, false.

Comentários

Chamar o Invalidate método não força uma pintura síncrona; para forçar uma pintura síncrona, chame o Update método depois de chamar o Invalidate método . Quando esse método é chamado sem parâmetros, toda a área do cliente é adicionada à região de atualização.

Confira também

Aplica-se a

Invalidate()

Invalida a superfície inteira do controle e faz com que o controle seja redesenhado.

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

Exemplos

O exemplo de código a seguir permite que o usuário arraste uma imagem ou um arquivo de imagem para o formulário e faça com que ele seja exibido no ponto em que ele é descartado. O OnPaint método é substituído para repintar a imagem sempre que o formulário é pintado; caso contrário, a imagem persistirá apenas até o próximo repositório. O DragEnter método de manipulação de eventos determina o tipo de dados que está sendo arrastado para o formulário e fornece os comentários apropriados. O DragDrop método de manipulação de eventos exibirá a imagem no formulário, se um Image puder ser criado com base nos dados. Como os DragEventArgs.X valores e DragEventArgs.Y são coordenadas de tela, o exemplo usa o PointToClient método para convertê-los em coordenadas do cliente.

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

Comentários

Chamar o Invalidate método não força uma pintura síncrona; para forçar uma pintura síncrona, chame o Update método depois de chamar o Invalidate método . Quando esse método é chamado sem parâmetros, toda a área do cliente é adicionada à região de atualização.

Confira também

Aplica-se a

Invalidate(Rectangle)

Invalida a região especificada do controle (a adiciona à região de atualização do controle, que é a área que será repintada na próxima operação de pintura) e envia uma mensagem ao controle.

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)

Parâmetros

rc
Rectangle

Um Rectangle que representa a região a ser invalidada.

Comentários

Chamar o Invalidate método não força uma pintura síncrona; para forçar uma pintura síncrona, chame o Update método depois de chamar o Invalidate método . Quando esse método é chamado sem parâmetros, toda a área do cliente é adicionada à região de atualização.

Confira também

Aplica-se a