Drag And Drop in die andere Richtung (textBox->TXT-File auf Desktop)



  • Hallo,

    ich wollte erreichen, dass ich den Text aus einer MultiLine-Textbox in eine *.txt-Datei auf dem Desktop bekomme, und das durch Drag (von der TextBox aus) and Drop (auf den Desktop).

    hier meine Zeile in textBox3_MouseDown(...):

    private void textBox3_MouseDown(object sender, MouseEventArgs e)
            {
                textBox3.DoDragDrop(new DataObject(DataFormats.FileDrop, textBox3.Text), DragDropEffects.Copy);
            }
    

    Damit habe ich - nach einiger Zeit - erreicht, dass die DragEnter des Desktops den Drag akzeptiert. Aber wenn ich droppe passiert nix. Wie auch? Der Desktop weiß ja nicht, was ich von ihm will. Wie kann ich dem Desktop mitteilen, dass er eine neue Textdatei mit dem Inhalt von textBox3.Text anlegen soll?

    MfG BN



  • Nein, so geht das nicht (direkt).

    Du kannst mit FileDrop nur Dateien draggen, d.h. du müßtest eine temporäre Datei (mit dem Text) erstellen und dann als Parameter des "DataObject" angeben (es wird ein String-Array verlangt), d.h.

    string sFilename = "..."; // 
    
    File.WriteAllText(sFilename, textBox3.Text);
    
    string[] list = new string[1];
    list[0] = sFilename;
    
    textBox3.DoDragDrop(new DataObject(DataFormats.FileDrop, list), DragDropEffects.Copy);
    


  • Argh, ich war so nah dran mit einem meiner Versuche.

    Dankeschön.

    Gruß BN


Anmelden zum Antworten