Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Método Control.Invalidate ()

 

Publicado: octubre de 2016

Invalida toda la superficie del control y hace que se vuelva a dibujar el control.

Espacio de nombres:   System.Windows.Forms
Ensamblado:  System.Windows.Forms (en System.Windows.Forms.dll)

public void Invalidate()

Llamar a la Invalidate método no fuerza una operación de dibujo sincrónica; para forzar una operación de dibujo sincrónica, llame a la Update método después de llamar a la Invalidate (método). Cuando se llama a este método sin parámetros, toda el área cliente se agrega a la región de actualización.

Habilita de ejemplo de código siguiente se quita al usuario arrastrar una imagen o un archivo de imagen en el formulario y mostrarlo en el punto. El OnPaint método se reemplaza para volver a dibujar la imagen cada vez que se dibuje el formulario; de lo contrario, la imagen sólo se conserva hasta la siguiente operación de dibujo. El DragEnter determina el tipo de datos que se arrastran en el formulario de método de control de eventos y proporciona la información apropiada. El DragDrop el método de control de eventos muestra la imagen en el formulario, si un Image pueden crearse a partir de los datos. Dado que la DragEventArgs.X y DragEventArgs.Y valores son coordenadas de pantalla, el ejemplo utiliza el PointToClient método convertirlas a coordenadas de cliente.

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;
   }
}

.NET Framework
Disponible desde 1.1
Volver al principio
Mostrar: