Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo Control.Invalidate ()

 

Data di pubblicazione: ottobre 2016

Invalida l'intera superficie del controllo e ne determina il ridisegno.

Spazio dei nomi:   System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)

public void Invalidate()

La chiamata di Invalidate metodo non impone un disegno asincrono; per forzare un disegno asincrono, chiamare il Update metodo dopo la chiamata di Invalidate (metodo). Quando questo metodo viene chiamato senza parametri, l'intera area client viene aggiunto all'area di aggiornamento.

Il codice esempio seguente viene abilitata l'utente di trascinare un'immagine o file di immagine nel form, che verrà visualizzato il punto in cui viene eliminato. Il OnPaint viene eseguito l'override di metodo per aggiornare l'immagine ogni volta che viene disegnato il form; in caso contrario l'immagine verrà mantenuta solo fino al successivo ridisegno. Il DragEnter metodo di gestione di eventi determina il tipo di dati trascinati nel form e fornisce le informazioni appropriate. Il DragDrop metodo di gestione eventi visualizza l'immagine del form, se un Image può essere creata dai dati. Poiché il DragEventArgs.X e DragEventArgs.Y sono coordinate dello schermo, nell'esempio viene utilizzata la PointToClient metodo per convertirli in coordinate client.

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
Disponibile da 1.1
Torna all'inizio
Mostra: