Treeview keine Exception bei Drag-And-Drop
-
Hallo!
Folgender Code schluckt die Exception einfach, ohne eine Meldung zu machen:+
namespace treetest { public partial class Form1 : Form { public Form1() { InitializeComponent(); treeView1.Nodes.Add(new TreeNode("Test1")); treeView1.Nodes.Add(new TreeNode("Test3")); treeView1.Nodes.Add(new TreeNode("Test2")); } private void treeView1_ItemDrag(object sender, ItemDragEventArgs e) { DoDragDrop(e.Item.ToString(), DragDropEffects.Move); } private void treeView1_DragEnter(object sender, DragEventArgs e) { e.Effect = DragDropEffects.Move; } private void treeView1_DragDrop(object sender, DragEventArgs e) { MessageBox.Show("before"); // Erscheint nach drag/drop // keine Fehlermeldung wegen unbehandelter Exception throw new ArgumentException("bla"); MessageBox.Show(e.ToString()); // erscheint nicht mehr } } }
Die Form enthält lediglich den TreeView treeView1, sonst nichts.
Ziehe ich ein Item auf ein anderes erscheint die Meldung "before", danach geschieht ncihts mehr und ich kann normal weiterarbeiten.Woran liegt das? Andere geworfene Exceptions werden doch angezeigt, wenn sie nicht behandelt werden. Wie kann ich das Erreichen? Try-Catch-Block in DragDrop wäre möglich, aber ich wüsste gerne, warum. try-catch um DoDragDrop() reicht nicht.
Liebe Grüße, Max
-
Prüfe mal ob das DragDrop Event in einem anderen Thread geworfen wird.
-
hab da was gefunden:
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.dodragdrop.aspx
"The DoDragDrop method catches all exceptions and rethrows only the following security or critical exceptions."
Also muss ich meine Exceptions selber abfangen in den einzelnen Event-Handlern... schade