<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>WinForms</title><link>https://www.dotnetzone.gr:443/cs/forums/12/ShowForum.aspx</link><description>Θέματα για rich client / windows εφαρμογές, σε οποιαδήποτε γλώσσα (VB.NET, C#, managed C++, κ.α.)</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: drag and drop</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/32318.aspx</link><pubDate>Wed, 30 May 2007 00:35:09 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:32318</guid><dc:creator>cap</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/32318.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=32318</wfw:commentRss><description>&lt;P&gt;Ψάχνοντας στα παλιά posts για δημοσιεύσεις περί drag&amp;amp;drop έπεσα επάνω στην παρούσα. Μια και έπεσα λοιπον, να πω οτι βρήκα επίσης στο CodeProject &lt;A href="http://www.codeproject.com/vb/net/TreeViewDragAndDrop.asp?df=100&amp;amp;forumid=133377&amp;amp;exp=0&amp;amp;select=1736167"&gt;ένα πολύ επεξηγηματικό άρθρο σχετικά με το drag&amp;amp;drop.&lt;/A&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;Με την ευκαιρία, κλείνω και τη δημοσίευση :)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description></item><item><title>Απ: drag and drop</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/21971.aspx</link><pubDate>Sun, 10 Dec 2006 19:20:24 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:21971</guid><dc:creator>Νατάσα Μανουσοπούλου</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/21971.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=21971</wfw:commentRss><description>Το TreeView, όπως όλα τα controls, έχει ένα σύνολο από events με τα οποία ελέγχεις το drag and drop. Όταν έχεις θέσει AllowDrop=true, τότε δημιουργούνται αυτά τα events, αλλά πρέπει εσύ να τα χειριστείς για να ολοκληρώσεις τη λειτουργία του drag and drop.&lt;br&gt;&lt;br&gt;Τα δύο βασικά events που πρέπει να χειριστείς οπωσδήποτε είναι:&lt;br&gt;&lt;h4&gt;DragEnter&lt;/h4&gt;Προκαλείται την πρώτη φορά που το ποντίκι, κάνοντας drag, μπαίνει μέσα σε ένα control. Αυτό είναι το σημείο όπου θα ελέγξεις ποιο είναι το αντικείμενο που γίνεται drag, αν θα το δεχτείς, και ποιες λειτουργίες υποστηρίζεις. By default δεν υποστηρίζεται καμία λειτουργία.&lt;br&gt;Αν θέλεις να επιτρέψεις μόνο την αντιγραφή, τότε στον κώδικά σου θα κάνεις&lt;br&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;private&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;void&lt;/span&gt; treeView1_DragEnter(&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;object&lt;/span&gt; sender, DragEventArgs e)&lt;br /&gt;{&lt;br /&gt;    e.Effect &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;=&lt;/span&gt; e.AllowedEffect  &amp;amp; DragDropEffects.Copy;&lt;br /&gt;}&lt;/span&gt;&lt;br&gt;Το βασικό όμως είναι να ελέγξεις &lt;b&gt;τι &lt;/b&gt;είναι αυτό που μπαίνει στον εναέριο χώρο του control σου, για να αποφασίσεις αν το αποδέχεσαι ή όχι. Για να το κάνεις αυτό ελέγχεις το e.Data. Αν μπορείς να δεχτείς ένα ορισμένο τύπο αντικειμένου, τότε μπορείς να χρησιμοποιήσεις την e.Data.IsDataPresent δίνοντας τον τύπο που θέλεις. Αν πάλι δεν είσαι τελείως σίγουρος για το τι μπορείς να δεχτείς, τότε μπορείς καλώντας την e.Data.GetFormats να δεις όλους τους τύπους που περιέχονται στο drag object και να αποφασίσεις.&lt;br&gt;&lt;br&gt;Ο παρακάτω κώδικας αποδέχεται ένα drop για copy αν περιέχει όνομα αρχείου:&lt;br&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;private&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;void&lt;/span&gt; treeView1_DragEnter(&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;object&lt;/span&gt; sender, DragEventArgs e)&lt;br /&gt;{&lt;br /&gt;     &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;if&lt;/span&gt; (e.Data.GetDataPresent(&lt;span style="color: #666666;background-color: #e4e4e4;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;"FileName"&lt;/span&gt;))&lt;br /&gt;       e.Effect &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;=&lt;/span&gt; e.AllowedEffect  &amp;amp; DragDropEffects.Copy;&lt;br /&gt;}&lt;/span&gt;&lt;br&gt;Βέβαια μπορείς να κάνεις πιο προχωρημένους ελέγχους, π.χ. χρησιμοποιώντας τα e.X και e.Y για να δεις ποιος κόμβος του δέντρου είναι κάτω από το ποντίκι, αν κι αυτά ταιριάζουν καλύτερα στο event GiveFeedback.&lt;br&gt;&lt;h4&gt;DragDrop&lt;/h4&gt;Αυτό το event θα προκληθεί αν έχεις "αποδεχτεί" ένα drag operation και ο χρήστης αφήσει το κουμπί του ποντικιού πάνω από το control σου. Εκεί έχεις τις ίδιες πληροφορίες που είχες και στο DragEnter, οπότε για να πάρεις το αντικείμενο που "έπεσε" στο control σου χρησιμοποιείς την e.Data.GetData:&lt;br&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;private&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;void&lt;/span&gt; treeView1_DragDrop(&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;object&lt;/span&gt; sender, DragEventArgs e)&lt;br /&gt;{&lt;br /&gt;     &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;if&lt;/span&gt; (e.Data.GetDataPresent(&lt;span style="color: #666666;background-color: #e4e4e4;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;"FileName"&lt;/span&gt;))&lt;br /&gt;     {&lt;br /&gt;         &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;string&lt;/span&gt;[] fileNames &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;=&lt;/span&gt; (&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;string&lt;/span&gt;[])e.Data.GetData(&lt;span style="color: #666666;background-color: #e4e4e4;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;"FileName"&lt;/span&gt;);&lt;br /&gt;         treeView1.Nodes.Add(fileNames[0]);&lt;br /&gt;     }&lt;br /&gt;}&lt;/span&gt;&lt;br&gt;&lt;br&gt;Από ό,τι βλέπεις, το drag and drop δεν είναι πυρηνική φυσική, αλλά δεν είναι και απλό.&lt;br&gt;&lt;br&gt;</description></item><item><title>drag and drop</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/21949.aspx</link><pubDate>Sun, 10 Dec 2006 01:51:19 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:21949</guid><dc:creator>roni7</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/21949.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=21949</wfw:commentRss><description>&lt;P&gt;Καλησπερα. Το ερωτημα μου ειναι αν και πως μπορω να κανω drag and drop απο/σε ενα Treeview control. Φτιαχνω μιε εφαρμογη (Windows Application) με VB.NET 2005. Κανω drag&amp;nbsp;ενα row απο ενα grid&amp;nbsp;επιτυχως και θελω να κανω drop σε ενα φακελο ενος treeview. Το προβλημα μου ειναι οτι η εφαρμογη&amp;nbsp;συμπεριφερεται σαν να μη δεχεται το treeview τη λειτουργια drop, δηλαδη σαν να εχω το allowdrop = false. Αν μπορει καποιος να με βοηθησει θα με σωσει. Ευχαριστω&amp;nbsp;&lt;/P&gt;</description></item></channel></rss>