none
drag and drop mit pictureBox RRS feed

  • Frage

  • Hallo,

    ich würde gerne ein Bild (z.B. vom Desktop) per Drag&Drop auf eine PictureBox bringen.

    Ich habe allerdings nur Beispiele zu TextBoxen gefunden, im Prinzip habe ein Problem mit der Anweisung:

    this->pictureBox1->Image= **********;

    Ich brauche einen Ausdruck mit dem ich auf die Datei des Drag&Drop zugreifen kann.

    Ich habe es z.B. schon mit

    dynamic_cast<Object^>(e->Data->GetData(DataFormats::FileDrop))^ToString();

    Und auch noch jede Menge Kombinationsmöglichkeiten davon.

    AllowDrop habe ich schon auf true gesetzt, das kann es also nicht sein.

    Wäre schön wenn ihr eine Lösung hättet.

    Gruß Hefeteig

    Samstag, 11. August 2012 17:04

Antworten

  • Hallo, ich bin zwar nicht der Experte in C++/CLI aber hier mein bescheidener funktionierneder Code:

        private: System::Void button1_DragEnter(System::Object^  sender, System::Windows::Forms::DragEventArgs^  e) {
                     if(e->Data->GetDataPresent(DataFormats::FileDrop))
                     {
                         e->Effect = DragDropEffects::Copy;
                     }
                     else
                     {
                         e->Effect = DragDropEffects::None;
                     }
                 }
        private: System::Void button1_DragDrop(System::Object^  sender, System::Windows::Forms::DragEventArgs^  e) {
                     array<String^>^ item = dynamic_cast<array<String^>^>(e->Data->GetData(DataFormats::FileDrop));
                     pictureBox1->Image = gcnew System::Drawing::Bitmap(item[0]);
                 }
    

    Ich Drag'n'Droppe die Datei auf einen Button und füge den Inhalt der Datei in di pictureBox1 ein.
    Achtung! Wenn es sich um keine Bilddatei habndelt, weis ich nicht was passiert, weis aber auch nicht wie ich das überprüfen soll (In C# z.B. ein Try-Catch-Block).

    Noch was: du machst da C++/CLI nicht C++!


    Koopakiller - http://koopakiller.ko.ohost.de/

    Samstag, 11. August 2012 18:31

Alle Antworten

  • Hallo, ich bin zwar nicht der Experte in C++/CLI aber hier mein bescheidener funktionierneder Code:

        private: System::Void button1_DragEnter(System::Object^  sender, System::Windows::Forms::DragEventArgs^  e) {
                     if(e->Data->GetDataPresent(DataFormats::FileDrop))
                     {
                         e->Effect = DragDropEffects::Copy;
                     }
                     else
                     {
                         e->Effect = DragDropEffects::None;
                     }
                 }
        private: System::Void button1_DragDrop(System::Object^  sender, System::Windows::Forms::DragEventArgs^  e) {
                     array<String^>^ item = dynamic_cast<array<String^>^>(e->Data->GetData(DataFormats::FileDrop));
                     pictureBox1->Image = gcnew System::Drawing::Bitmap(item[0]);
                 }
    

    Ich Drag'n'Droppe die Datei auf einen Button und füge den Inhalt der Datei in di pictureBox1 ein.
    Achtung! Wenn es sich um keine Bilddatei habndelt, weis ich nicht was passiert, weis aber auch nicht wie ich das überprüfen soll (In C# z.B. ein Try-Catch-Block).

    Noch was: du machst da C++/CLI nicht C++!


    Koopakiller - http://koopakiller.ko.ohost.de/

    Samstag, 11. August 2012 18:31
  • Vielen vielen Dank,

    das war genau das, was ich noch gebraucht habe, das waren zwar nur zwei Zeilen, aber auf die wäre ich nie gekommen.

    Danke Koopakiller

    in Zukunft werde ich auch mehr aufpassen, welches Forum ich für eine Frage wähle.

    Gruß Hefeteig

    Sonntag, 12. August 2012 19:04