powered by simpleCommunicator - 2.0.57     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Drag-Drop в ListView
5 сообщений из 5, страница 1 из 1
Drag-Drop в ListView
    #38119513
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я добавляю элемент из TreeView в ListView
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
private void listViewDemo_DragDrop(object sender, DragEventArgs e)
        {
            if (!is_listview) //treeview item
            {
                //get a text of a draged item
                string str = e.Data.GetData(DataFormats.Text).ToString();
                //get information about hovered item
                ListViewHitTestInfo hit_info = listViewDemo.HitTest(listViewDemo.PointToClient(new Point(e.X, e.Y)));
                //check position - must be on an item
                if (hit_info.Location == ListViewHitTestLocations.None) return;
                ListViewItem prev_item = hit_info.Item;
                ListViewGroup group = prev_item.Group;
                int idx = prev_item.Index;
                //create a new key
                Guid key = Guid.NewGuid();
                string item_key = key.ToString();
                //create a new item
                //option 1
                if (idx == 0)
                {
                    group.Items.Insert(idx, listViewDemo.Items.Add(item_key, str, ""));
                }
                else
                {
                    group.Items.Insert(idx - 1, listViewDemo.Items.Add(item_key, str, ""));
                }
               
                //option2
                //group.Items.Insert(idx, listViewDemo.Items.Add(item_key, str, ""));
            }
        }


По логике элемент должен добавиться в том месте куда я навел мышь, а он добавляется в конец списка.
Если я пробую option2 получаю эксепшн
InvalidArgument=Value of '3' is not valid for 'index'.
Parameter name: index
Как заставить элемент добавляться туда куда я навел мышь? Проект прилагаю.
...
Рейтинг: 0 / 0
Drag-Drop в ListView
    #38119544
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7,

Items.Add добовляет элемент в конец
...
Рейтинг: 0 / 0
Drag-Drop в ListView
    #38119748
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ок, пробую так
group.Items.Add(listViewDemo.Items.Insert(idx,item_key, str, ""));
и так
group.Items.Insert(idx,listViewDemo.Items.Insert(idx, item_key, str, ""));
все равно добавляет элементы в конец.
...
Рейтинг: 0 / 0
Drag-Drop в ListView
    #38119814
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7ок, пробую так
group.Items.Add(listViewDemo.Items.Insert(idx,item_key, str, ""));
и так
group.Items.Insert(idx,listViewDemo.Items.Insert(idx, item_key, str, ""));
все равно добавляет элементы в конец.

listViewDemo.Items.Insert
...
Рейтинг: 0 / 0
Drag-Drop в ListView
    #38119838
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
у меня есть три группы и если я делаю просто listViewDemo.Items.Insert(idx, item_key, str, ""); то элемент добавляется в дефолтовую группу, которая создается, но даже тогда он добавляется в конец дефолтовой группы.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Drag-Drop в ListView
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]