Laden...

Anfänger benötigt Hilfe bei Drag & Drop

Erstellt von team-yetix vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.185 Views
T
team-yetix Themenstarter:in
9 Beiträge seit 2007
vor 16 Jahren
Anfänger benötigt Hilfe bei Drag & Drop

Hallo,

in neu hier im Forum, und auch neu bei C#. Habe bisher fast ausschlieslich in Php programmiert.

Ich sollte eine Anwendung programmieren, mit der ich Adressaufkleber drucken kann.

Die Daten für die Adressaufkleber bekomme ich als TXT Datei im Outlook.

Jetzt sollte es so sein, das ich das Attchment ( TXT Datei) direkt in die Anwendung ziehen kann, und dort der Inhalt in eine RichTextBox steht.

Ich habe alle Forumeinträge im Bezug auf Drag & Drop durchgelesen, aber keiner Funktioniert bei mir, oder hat die richtige Lösung.

Das mit dem Drucken und den Rest haben ich jetzt schon fast alles beieinander.

Wer könnte mir helfen ??

Habe meine Komplettes Project angehängt.

Vielen Dank für euere Hilfe im Voraus.

Ralph

24 Beiträge seit 2007
vor 16 Jahren

mir hat das allg. weiter geholfen bei drag & drop
http://www.galileocomputing.de/openbook/visual_csharp/visual_csharp_24_000.htm#Xxx999342

so wie ich es verstanden habe (bin selber noch am lernen)
geht es in dem fall hauptsächlich um die beiden events DragEnter und DragDrop

weiter sollte man nicht vergessen, für das jeweilige Feld AllowDrop auf True zu setzen (sonst kann man schnell mal durchdrehen)

edit: das projekt kann ich mir leider zZ nicht anschauen, da ich nicht an meinem arbeits-pc sitze

T
team-yetix Themenstarter:in
9 Beiträge seit 2007
vor 16 Jahren

Hallo DarkSnake,

In der Form habe ich AllowDrop auf true.

Wenn ich aus dem DateiBrowser die Txt Datei reinziehe, kommt in der RichTextBox ein Rahmen mit dem Inhalt Textdocument. Wenn ich dann einen Doppel klick drauf mache, öffnet sich der Windowseditor un zeigt mir den Inhalt an.

Ich bräucht aber das von Outlook aus, und das der Ihnhalt der Txt Datei in der Box steht.

Supper, jetzt funktioniert auch schon das Drag & Drop aus dem Datei Explorer.

Und wie muß ich das jetzt noch machen, das ich aus Outlook das hinbekomme ??

24 Beiträge seit 2007
vor 16 Jahren

sorry
hab dich falsch verstanden

...dafür reicht mein basis-wissen wohl leider noch nicht aus
aber hier gibts sicher genug schlaue köpfe, die dir gerne weiter helfen

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo DarkSnake,

aber hier gibts sicher genug schlaue köpfe, die dir gerne weiter helfen

naja, so gerne in diesem Fall wohl nicht, denn

Habe meine Komplettes Project angehängt.

widerspricht [Hinweis] Wie poste ich richtig? Punkt 4.

herbivore

T
team-yetix Themenstarter:in
9 Beiträge seit 2007
vor 16 Jahren

Hallo herbivore ,

ich wollte nicht gegen eine Regel verstossen.

Ich habe mein Project nur deswegen angehängt, das wenn mir eine hilft, auch genau weiß was ich schon gemacht und wie ich es gemacht habe.

Ich wollte nicht, das mir jemand die Arbeit erledigt, das war wirklich nur fürs bessere Verständnis.

Viele Grüße

Ralph

830 Beiträge seit 2005
vor 16 Jahren

Hallo team-yetix,


private void MainForm_DragDrop(object sender, DragEventArgs e) {
	StringBuilder sBuilder = new StringBuilder();

	using (MemoryStream obj = (MemoryStream)e.Data.GetData("FileContents")) {
		using (StreamReader sReader = new StreamReader(obj)) {
			string line = String.Empty;
			while ((line = sReader.ReadLine()) != null) {
				sBuilder.AppendLine(line);
			}
		}
	}
			
	string text = sBuilder.ToString();
}

private void MainForm_DragEnter(object sender, DragEventArgs e) {
	e.Effect = DragDropEffects.All;
}

Dient nur als Einstieg, da fehleranfällig. Aber eine fertige Lösung willst du ja auch gar nicht 🙂.

Gruss
Friedel

Ohne Ziel ist auch der Weg egal.

T
team-yetix Themenstarter:in
9 Beiträge seit 2007
vor 16 Jahren

Jein, eine Fertige Lösung möchte ich nicht, aber ein fertigen Lösungsweg 😉 HAHAHA

Aber Spaß beiseite, ich muß ja auch noch was dabei lernen.

Wieso Fehleranfällig??, ich mach ja immer die gleichaufgebaute TXT Datei.

T
team-yetix Themenstarter:in
9 Beiträge seit 2007
vor 16 Jahren

Hallo Friedel,

hab deinen Code mal ausprobiert. Funktioniert bei mir aber irgendwie nicht.
Kannst mir den Code etwas erklären ??

Vielleicht auch per Skype ??

830 Beiträge seit 2005
vor 16 Jahren

Hallo team-yetix,


private void MainForm_DragDrop(object sender, DragEventArgs e) {
	StringBuilder sBuilder = new StringBuilder();

        //Hier holst du die Daten aus der "Ablage". FielContents gibt an, wie die Daten
        //formatiert werden sollen. Fehlerquelle, da bei Objekten, welche nicht so 
        //formatiert werden können eine NullReferenceException ausgelöst wird.
	using (MemoryStream obj = (MemoryStream)e.Data.GetData("FileContents")) {
		using (StreamReader sReader = new StreamReader(obj)) {
			string line = String.Empty;
			while ((line = sReader.ReadLine()) != null) {
				sBuilder.AppendLine(line);
			}
		}
	}
			
	string text = sBuilder.ToString();
}

private void MainForm_DragEnter(object sender, DragEventArgs e) {
        //Hier legst du fest, welche Aktionen durchgeführt werden dürfen.
        //In diesem Fall hier alles !   (Mögliche Fehlerquelle)
	e.Effect = DragDropEffects.All;
}

Mit

string[] formats = e.Data.GetFormats();

kannst du herausfinden, welche Formate möglich sind. e sind die DragEventArgs.

Gruss
Friedel

Ohne Ziel ist auch der Weg egal.

830 Beiträge seit 2005
vor 16 Jahren

Hallo team-yetix,


private void MainForm_DragDrop(object sender, DragEventArgs e) {
	StringBuilder sBuilder = new StringBuilder();

        //Hier holst du die Daten aus der "Ablage". FielContents gibt an, wie die Daten
        //formatiert werden sollen. Fehlerquelle, da bei Objekten, welche nicht so 
        //formatiert werden können eine NullReferenceException ausgelöst wird.
	using (MemoryStream obj = (MemoryStream)e.Data.GetData("FileContents")) {
		using (StreamReader sReader = new StreamReader(obj)) {
			string line = String.Empty;
			while ((line = sReader.ReadLine()) != null) {
				sBuilder.AppendLine(line);
			}
		}
	}
			
	string text = sBuilder.ToString();
}

private void MainForm_DragEnter(object sender, DragEventArgs e) {
        //Hier legst du fest, welche Aktionen durchgeführt werden dürfen.
        //In diesem Fall hier alles !   (Mögliche Fehlerquelle)
	e.Effect = DragDropEffects.All;
}

Mit

string[] formats = e.Data.GetFormats();

kannst du herausfinden, welche Formate möglich sind. e sind die DragEventArgs.

Funktioniert bei mir aber irgendwie nicht. Wie poste ich richtig? (Punkt 5)

Gruss
Friedel

Ohne Ziel ist auch der Weg egal.