Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

Control.Invalidate méthode ()

 

Date de publication : novembre 2016

Invalide la surface totale du contrôle et le contrôle est redessiné.

Espace de noms:   System.Windows.Forms
Assembly:  System.Windows.Forms (dans System.Windows.Forms.dll)

public void Invalidate()

Appeler le Invalidate méthode n’impose pas de peinture synchrone ; pour imposer une peinture synchrone, appelez la Update méthode après avoir appelé la Invalidate (méthode). Lorsque cette méthode est appelée sans paramètres, la zone client entière est ajoutée à la région de mise à jour.

Le code exemple suivant active l’utilisateur de faire glisser une image ou un fichier image sur le formulaire et afficher à l’emplacement où elle est supprimée. Le OnPaint méthode est substituée pour repeindre l’image chaque fois que le formulaire est peint ; sinon, l’image n’est rendue persistante jusqu'à ce que la mise à jour suivante. Le DragEnter méthode de gestion d’événements détermine le type de données glissées sur le formulaire et fournit les commentaires appropriés. Le DragDrop méthode de gestion d’événement affiche l’image sur le formulaire, si un Image peuvent être créés à partir des données. Étant donné que le DragEventArgs.X et DragEventArgs.Y les valeurs sont des coordonnées d’écran, l’exemple utilise le PointToClient méthode pour les convertir en coordonnées clientes.

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 depuis 1.1
Retour au début
Afficher: