Control.AllowDrop-Eigenschaft
Assembly: System.Windows.Forms (in system.windows.forms.dll)
/** @property */ public boolean get_AllowDrop () /** @property */ public void set_AllowDrop (boolean value)
public function get AllowDrop () : boolean public function set AllowDrop (value : boolean)
Eigenschaftenwert
true, wenn Drag & Drop-Vorgänge für das Steuerelement zulässig sind, andernfalls false. Der Standardwert ist false.Im folgenden Codebeispiel kann der Benutzer ein Bild oder eine Bilddatei in das Formular ziehen und an der Stelle ablegen, an der das Element angezeigt werden soll. Die OnPaint-Methode wird überschrieben, sodass das Bild jedes Mal neu gezeichnet wird, wenn das Formular gezeichnet wird. Andernfalls würde das Bild nur bis zum nächsten Neuzeichnen beibehalten werden. Die DragEnter-Ereignisbehandlungsmethode bestimmt den Datentyp, der in das Formular gezogen wird, und reagiert entsprechend. Die DragDrop-Ereignisbehandlungsmethode zeigt das Bild im Formular an, wenn aus den Daten ein Image erstellt werden kann. Die Werte DragEventArgs.X und DragEventArgs.Y sind Bildschirmkoordinaten. Daher wird im Beispiel die PointToClient-Methode verwendet, um sie in Clientkoordinaten umzuwandeln.
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 Image picture;
private Point pictureLocation;
public Form1()
{
// Enable drag-and-drop operations and
// add handlers for DragEnter and DragDrop.
this.set_AllowDrop(true);
this.add_DragDrop(new DragEventHandler(this.Form1_DragDrop));
this.add_DragEnter(new DragEventHandler(this.Form1_DragEnter));
} //Form1
protected void OnPaint(PaintEventArgs e)
{
// If there is an image and it has a location,
// paint it when the Form is repainted.
super.OnPaint(e);
if (this.picture != null && !this.pictureLocation.Equals(Point.Empty)) {
e.get_Graphics().DrawImage(this.picture, this.pictureLocation);
}
} //OnPaint
private void Form1_DragDrop(Object sender, DragEventArgs e)
{
// Handle FileDrop data.
if (e.get_Data().GetDataPresent(DataFormats.FileDrop)) {
// Assign the file names to a string array, in
// case the user has selected multiple files.
String files[] = (String[])(e.get_Data().GetData(
DataFormats.FileDrop));
try {
// Assign the first image to the picture variable.
this.picture = Image.FromFile(files.toString());
// Set the picture location equal to the drop point.
this.pictureLocation = this.PointToClient(new Point(e.get_X(),
e.get_Y()));
}
catch (System.Exception ex) {
MessageBox.Show(ex.get_Message());
return;
}
}
// Handle Bitmap data.
if (e.get_Data().GetDataPresent(DataFormats.Bitmap)) {
try {
// Create an Image and assign it to the picture variable.
this.picture = (Image)e.get_Data().GetData(DataFormats.Bitmap);
// Set the picture location equal to the drop point.
this.pictureLocation = this.PointToClient(new Point(e.get_X(),
e.get_Y()));
}
catch (System.Exception ex) {
MessageBox.Show(ex.get_Message());
return;
}
}
// Force the form to be redrawn with the image.
this.Invalidate();
} //Form1_DragDrop
private void Form1_DragEnter(Object sender, DragEventArgs e)
{
// If the data is a file or a bitmap, display the copy cursor.
if (e.get_Data().GetDataPresent(DataFormats.Bitmap) || e.get_Data().
GetDataPresent(DataFormats.FileDrop)) {
e.set_Effect(DragDropEffects.Copy);
}
else {
e.set_Effect(DragDropEffects.None);
}
} //Form1_DragEnter
- UIPermission für uneingeschränkten Zugriff auf die Zwischenablage, um diese Eigenschaft auf true festzulegen. Zugeordnete Enumeration: der AllClipboard-Wert von System.Security.Permissions.UIPermissionClipboard.
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.