Строки перетаскивания C# Listview

Я пытаюсь реализовать переупорядочивание строки перетаскивания C# с listview, который затем обновил бы базу данных SQL с текущим порядком строк. Я столкнулся с некоторыми отрывками кода в Интернете (один с этого веб-сайта, который реализовал класс 'var'), но ни один, кажется, не работает с моими потребностями. Я не нуждаюсь в помощи, обновляя базу данных, поскольку у меня есть хорошая идея, как я сделал бы это, но, может казаться, не заставляю переупорядочение строки работать правильно, любой вход ценился бы.

спасибо

m&a

7
задан Mike 26 July 2010 в 13:01
поделиться

2 ответа

  1. Убедитесь, что для AllowDragDrop установлено значение true .

  2. Реализуйте обработчики как минимум для этих 3 событий

     private void myList_ItemDrag (объект-отправитель, ItemDragEventArgs e)
     {
    DoDragDrop (e.Item, DragDropEffects.Link);
     }
    
    private void myList_DragEnter (отправитель объекта, DragEventArgs e)
     {
    e.Effect = DragDropEffects.Link;
     }
    
    private void myList_DragDrop (отправитель объекта, DragEventArgs e)
     {
     // делаем все, что вам нужно, чтобы переупорядочить список.
     }
    

    Получение индекса строки, на которую вы перетащили, может выглядеть примерно так:

     Point cp = myList.PointToClient (new Point (e.X, e.Y));
    ListViewItem dragToItem = myList.GetItemAt (cp.X, cp.Y);
    int dropIndex = dragToItem.Index;
    
15
ответ дан 6 December 2019 в 14:00
поделиться

Я знаю, что это не ListView , но у меня есть пример кода для реализации перетаскивания строк из / в DataGridView . Некоторые из них, очевидно, относятся к конкретным элементам управления, другой код на самом деле довольно общий (например, определение того, когда его перетаскивать):

http://adamhouldsworth.blogspot.com/2010/01/datagridview-multiple-row-drag-drop .html

Совершенно забыл о том, что ListView уже допускает перетаскивание!

Я также могу добавить немного теории - когда на вашем элементе управления происходит падение, вам нужно будет выполнить проверку нажатия на эти координаты (вероятно, метод под названием HitTest ) в ListView , чтобы увидеть, какая строка была поражена, это основа для вставки перетаскиваемой строки.

Несвязанный - этот класс var , возможно, новое ключевое слово var в C #?

0
ответ дан 6 December 2019 в 14:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: