C# C# - Image: Drag & Drop in den Browser

lygrafix

Cadet 1st Year
Registriert
Dez. 2010
Beiträge
13
hai Alle!

Ich versuche ein Image aus einer DataGridViewImageCell per Drag & Drop z.B. in MSPaint einzufügen, bekomm's aber nicht hin. Mit Text funktioniert's einwandfrei - also in z.B. Notepad++.
Fast alle Beschreibungen, die ich finde, behandeln das Text-Format, Images nur innerhalb von C#, letzteres funktioniert auch einwandfrei. Ich kann das Image, die Bitmap halt einfach nicht "exportieren".

Der Drag&Drop-Code ist der übliche:
Code:
private static void dgv_MouseDown(object sender, DataGridViewCellMouseEventArgs e)
		{
			if (e.ColumnIndex > 1)
				dgv.DoDragDrop(dgv[e.ColumnIndex, e.RowIndex].Value, DragDropEffects.Copy);
		}
Wie gesagt: In Spalte 2 ist das Image, in Spalte 3 der Text - den zu verschieben wird akzeptiert, das Image in passenden Programmen nicht. Nur in die programmeigene PictureBox kann ich es problemlos verschieben.

Was ist da los? Was übersehe ich? Ich habe auch versucht, das Image als Bitmap oder Byte-Array zu verschieben - nix.
Weiß jemand Rat? Danke schon mal.

vG
...lypô
 
Ich kenn mich mit c# leider nicht so richtig aus, daher mal ganz blöd gefragt: Weißt du überhaupt, ob Windows bzw. Paint oder der Browser Drag & Drop für Bilder überhaupt unterstützen?
 
Intern werden Bilder als System.Drawing.Bitmap im Drag&Drop behandelt, leider kann damit wohl kaum ein anderes Programm was anfangen, in PaintShopPro sehe ich zwar das er das Drag&Drop annehmen will, aber leider erfolglos.

Man kann aber als FileDrop übergeben:
Code:
using System.IO;
...
                Image img = (Image)dgv[e.ColumnIndex, e.RowIndex].Value;
                String[] files = new String[1];
                files[0] = Path.Combine(Path.GetTempPath(), Path.GetTempFileName());
                img.Save(files[0]);
                DataObject dt = new DataObject(DataFormats.FileDrop, files);
                dt.SetData(DataFormats.Bitmap, img);
                dgv.DoDragDrop(dt, DragDropEffects.Copy);
 
Zurück
Oben