Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Drag-n-Drop из контрола в контрол Добавлено: 30.05.08 09:03  

Автор вопроса:  Старый
Доброго дня, господа!

Только начинаю, но уже с амбициями неуемными лезу (поиск по форуму работает не очень нормально, все время виснет, поэтому найти подобные обсуждаения не удалось ).

Интересует вот какой вопрос ( vs2005, vb.net ):

на форме DataGridView (список) и TreeView (папки). В каждой строке списка в первом скрытом столбце хранится код папкм в дереве. Необходим код, который позволит реализовать механизм Drag-n-Drop по перетаскиванию строки в другую папку.

Вроде бы все просто, надо выделить строку в DataGridView, затем не отпуская ЛКМ вести указатель мыша к дереву, а там считать код выделенной указателем папки и заменить данные в строке DataGridView

Но как это реализовать не знаю. Помогите, научите, если можно то код подскажите :)

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #1 Добавлено: 31.05.08 23:55
Нет, там должны быть события специально для D-n-D. Так что ты не в ту сторону смотришь, ловить кнопки и координаты мыши здесь не нужно.

Ответить

Номер ответа: 2
Автор ответа:
 __Pavel__



Вопросов: 29
Ответов: 284
 Web-сайт: ммм.сайта.НЕТ
 Профиль | | #2
Добавлено: 01.06.08 23:53
На... кинь на форму 2 листбокса... это пример, надеюсь разберешься:

Public Class Form1

    Private Sub ListBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListBox1.MouseDown
        ListBox1.DoDragDrop(ListBox1.Text, DragDropEffects.Copy Or DragDropEffects.Move)
    End Sub

    Private Sub ListBox2_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles ListBox2.DragDrop
        ListBox2.Items.Add(e.Data.GetData(DataFormats.Text).ToString)
    End Sub

    Private Sub ListBox2_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles ListBox2.DragEnter
        If (e.Data.GetDataPresent(DataFormats.Text)) Then
            e.Effect = DragDropEffects.Copy
        Else
            e.Effect = DragDropEffects.None
        End If
    End Sub

    Private Sub Перемещение_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ListBox2.AllowDrop = True

        ListBox1.Items.Add("111";)
        ListBox1.Items.Add("222";)
        ListBox1.Items.Add("333";)
        ListBox1.Items.Add("444";)
        ListBox1.Items.Add("555";)
    End Sub
End Class

Ответить

Номер ответа: 3
Автор ответа:
 Старый



Вопросов: 6
Ответов: 13
 Профиль | | #3 Добавлено: 02.06.08 09:46
2 _Pavel__

Спасибо, код с листбоксами работает. Однако одна загвоздка так и осталась на поверхности. При переносе, "процесс" фиксирует только контрол ( в данном случае Listbox2 ), в который можно перенести данные, однако не выделяет строки в данном контроле. Для этого есть свойство какое-то у LB или надо код вручную писать и не смотря на предостережения ( см. первый ответ ) все же ловить координаты мыши ?

С уважением и благодарностью ;)

Ответить

Номер ответа: 4
Автор ответа:
 __Pavel__



Вопросов: 29
Ответов: 284
 Web-сайт: ммм.сайта.НЕТ
 Профиль | | #4
Добавлено: 02.06.08 17:18
я тоже новичек... почти... я этим еще не занимался, так что не знаю как это делать =(

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам