![]() |
|
#1
|
||||
|
||||
![]() Как управлять элементами листбокс с помощью кнопок расположенных на форме? Например передвинуть один или несколько выделенных элементов кнопками "вверх" или "вниз", переместить элементы сразу вверх или вниз списка или удалить из списка.
|
#2
|
|||
|
|||
![]() Код:
|
#3
|
||||||||||||
|
||||||||||||
![]() Переместить выделенный в конец
Код:
в начало Код:
удалить Код:
вверх Код:
вниз Код:
это если фокус сохранять нужно (сдвиг вниз) Код:
Нет повести печальнее на свете, чем повесть о заклиневшем Resete. ![]() |
#4
|
||||
|
||||
![]() Цитата:
это сдвиг фокуса, но не Item-a ![]() Нет повести печальнее на свете, чем повесть о заклиневшем Resete. ![]() |
#5
|
|||
|
|||
![]() Цитата:
Вопрос не внимательно прочитал |
#6
|
||||
|
||||
![]() Спасибо! Все работает.
Как быть, если надо передвинуть несколько строк сразу? |
#7
|
||||
|
||||
![]() Еще вопросик. Как переименовать файл на диске, используя значение из элемента листбокса, в котором содержится полный адрес включая расширение.
Последний раз редактировалось timeless, 28.06.2008 в 03:39. |
#8
|
|||
|
|||
![]() Вообще, переименовать файл можно командой Rename. Одно из имен у тебя уже готовое лежит в листбоксе. Второе надо сконструировать.
Код:
Сорри, коменты по английски. Идея такая. В листбоксе лежит полное имя файла (с путем). Переименовываем выбранный файл. Спрашиваем новое имя у пользователя. Если получилось переименовать, то обновляем инфу в листбоксе, иначе - сообщение об ошибке. |
#9
|
||||
|
||||
![]() что значит несколько строк? несколько выделенных? начиная с какой-то позиции или что?
Нет повести печальнее на свете, чем повесть о заклиневшем Resete. ![]() |
#10
|
||||
|
||||
![]() lmikle,
Спасибо, сделал по вашему примеру. Ferra, Угу, нескольких выделенных. Пользователь выделяет несколько строк, и, при нажатии кнопки "вверх", они все перемещаются вверх на одну позицию. Аналогично с кнопками "в начало" и "удалить" и т.д. Подозреваю будут проблемы, если строки выделены через одну. Алгоритм в голове есть, но он слишком громоздкий, и я не знаю как обработать множественное выделение. |
#11
|
|||
|
|||
![]() Если передвижка идет на 1 позицию, то особых проблем нет.
Если двигаем вверх, то циклом от 0 до Count-1 двигаем поочереди все строки на единичку вверх (используя метод Exchange и контролируя, что строка и так не является первой). Если двигаем вниз, то циклом от Count-1 до 0 двигаем поочереди все строки на единичку вниз (используя метод Exchange и контролируя, что строка и так не является последней). Пример нужен или сам справишся? |
#12
|
||||
|
||||
![]() Пожалуй, нужен пример.
|
#13
|
|||
|
|||
![]() О, господи!!!
Код:
Вниз аналогично, только цикл в обратном напрмвлении и проверяешь I+1. Вроде должно работать. |
#14
|
||||
|
||||
![]() Цитата:
Последний раз редактировалось timeless, 01.07.2008 в 13:39. |
#15
|
||||
|
||||
![]() И еще вопрос, если я не совсем надоел
![]() |