Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Control.PointToClient-Methode: (Point)

 

Veröffentlicht: Oktober 2016

Rechnet die Position des angegebenen Bildschirmpunkts in Clientkoordinaten um.

Namespace:   System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)

public Point PointToClient(
	Point p
)

Parameter

p
Type: System.Drawing.Point

Der zu konvertierende Bildschirmkoordinaten-Point.

Rückgabewert

Type: System.Drawing.Point

Ein Point, der den konvertierten Point, p, in Clientkoordinaten darstellt.

Im folgenden Code Beispiel kann der Benutzer ein Bild oder eine Bilddatei in das Formular ziehen und an dem Punkt davon angezeigt werden, gelöscht wird. Die OnPaint Methode wird überschrieben, um das Bild jedes Mal neu Form gezeichnet wird, andernfalls das Bild nur bis zum nächsten Neuzeichnen beibehalten möchten. Die DragEnter -Ereignisbehandlungsmethode bestimmt den Typ der Daten in das Formular gezogen wird, und reagiert entsprechend. Die DragDrop -Ereignisbehandlungsmethode zeigt das Bild auf dem Formular, wenn ein Image aus Daten erstellt werden können. Da die DragEventArgs.X und DragEventArgs.Y Werte sind Bildschirmkoordinaten, das Beispiel verwendet die PointToClient Methode Clientkoordinaten konvertieren.

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
Verfügbar seit 1.1
Zurück zum Anfang
Anzeigen: