Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 14.06.2024
Сообщений: 2

VB6 удаление элемента из ListBox при его выборе и нажатии кнопки

14.06.2024, 16:15. Показов 940. Ответов 9
Метки vb6 (Все метки)

Студворк — интернет-сервис помощи студентам
Я делаю что-то наподобие инвентаря. Пользователь выбирает пункт , нажимает на кнопку и данный пункт(выбранный) удаляется . Название строки - это элемент массива предметов и является String- овой переменной. Помогите пожалуйста!
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.06.2024, 16:15
Ответы с готовыми решениями:

Как сделать, чтобы при выборе поля в ListBox и нажатии кнопки "Выбор" поле исчезло
список ListBox c черырьмя опциями, RadioGroup с теми же опциями, флажок CheckBox, кнопка «Выбор» и кнопка «Закрыть». При выборе опции и...

Удаление элемента таблицы и записи в БД при нажатии кнопки
Сам разобрался... сама страница: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <Title>Dashboard</title> ...

ListBox - событие при выборе элемента
Подскажите, как называется событие, которое происходит при выборе элемента из списка ListBox ? Причем нужно такое событие, которое...

9
 Аватар для Argus19
1427 / 444 / 78
Регистрация: 24.09.2017
Сообщений: 2,525
Записей в блоге: 22
14.06.2024, 19:55
Цитата Сообщение от FTHR_Lemoniy Посмотреть сообщение
Пользователь выбирает пункт
Где именно?
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38162 / 21097 / 4306
Регистрация: 12.02.2012
Сообщений: 34,685
Записей в блоге: 14
15.06.2024, 09:05
Visual Basic
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
Private Sub Command1_Click()
        Unload Me
End Sub
 
Private Sub Form_Load()
 
     With Me.List1
     
          For i% = 1 To 10
          
              .AddItem CStr(i%)
              
          Next i%
     
     End With
 
End Sub
 
Private Sub List1_DblClick()
 
    k% = Me.List1.ListIndex
    
    If MsgBox("Подтвердите удаление элемента " + Me.List1.List(k%)) = vbOK Then
    
       Me.List1.RemoveItem k%
 
    End If
    
End Sub
Удаление элемента списка по двойному клику с подтверждением
Вложения
Тип файла: zip 001.zip (1.1 Кб, 0 просмотров)
3
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
15.06.2024, 13:55
Лучший ответ Сообщение было отмечено FTHR_Lemoniy как решение

Решение

Visual Basic
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
Option Explicit
Dim strPositions() As String
 
' Функция которая удаляет строчку из массива String по индексу
Public Function ShrinkArrayString(ByRef nArr() As String, ByVal nIndex As Long) As Boolean
    On Error Resume Next
    
    Dim i As Long
    
    If nIndex <= UBound(nArr) Then
        If Err.Number = 9 Then ' Массив не инициализирован
            Err.Clear
            Exit Function
        End If
        
        For i = nIndex To UBound(nArr)
            If i <> UBound(nArr) Then ' Если это не последняя строка
                ' Строчка индекса удаляется, а значит строчка индекса должна стать следующей строчкой
                nArr(i) = nArr(i + 1)
            Else
                If LBound(nArr) = UBound(nArr) Then ' Если последняя строка так же является ещё и первой
                    Erase nArr ' Значит сразу очистить полностью массив
                    ShrinkArrayString = True
                    Exit Function
                End If
            End If
        Next
        
        ReDim Preserve nArr(UBound(nArr) - 1)
        ShrinkArrayString = True
    End If
End Function
 
Private Sub Command1_Click() ' Удалить позицию из листбокса и массива
    Dim ListIndexSave As Long
    
    If List1.ListIndex > -1 Then
        ListIndexSave = List1.ListIndex ' Запомнить строчку на котрой мы были
        
        List1.RemoveItem ListIndexSave ' Удалить строчку из ListBox
        ShrinkArrayString strPositions, ListIndexSave ' Удалить строчку из массива
        
        ' Выделить строчку в листбоксе после удаления
        If List1.ListCount > 0 Then
            If ListIndexSave < List1.ListCount Then
                List1.Selected(ListIndexSave) = True
            Else
                List1.Selected(List1.ListCount - 1) = True
            End If
        End If
    End If
End Sub
 
Private Sub Command2_Click() ' Показать массив
    Dim i As Long
    Dim str As String
    
    If List1.ListCount > 0 Then
        For i = 0 To UBound(strPositions)
            str = str & strPositions(i) & vbCrLf
        Next
        
        MsgBox str, vbInformation
    End If
End Sub
 
Private Sub Form_Load()
    Dim i As Long
    
    ' Добавить в листбокс разные строки
    List1.AddItem "Яблоки"
    List1.AddItem "Персики"
    List1.AddItem "Апельсины"
    List1.AddItem "Груши"
    List1.AddItem "Бананы"
    
    List1.Selected(0) = True
    'List1.Sorted = True Если хотим сортировку то её нужно устанавливать изначально в IDE, в коде не хочет
    
    ReDim Preserve strPositions(List1.ListCount - 1)
    
    For i = 0 To UBound(strPositions) ' Все строки в листбоксе уже сами по себе отсортировались
        strPositions(i) = List1.List(i) ' Копируем все строки из листбокса в массив
    Next
End Sub
Вложения
Тип файла: zip VB6 удаление элемента из ListBox.zip (7.0 Кб, 3 просмотров)
2
0 / 0 / 0
Регистрация: 14.06.2024
Сообщений: 2
15.06.2024, 15:10  [ТС]
В ListBox
0
 Аватар для Argus19
1427 / 444 / 78
Регистрация: 24.09.2017
Сообщений: 2,525
Записей в блоге: 22
15.06.2024, 18:29
Цитата Сообщение от FTHR_Lemoniy Посмотреть сообщение
В ListBox
Цитата Сообщение от FTHR_Lemoniy Посмотреть сообщение
Я делаю что-то наподобие инвентаря.
В таком случае, следует помнить о максимальном размере ListBox
Вот что говорит Help:
"Ограничения для отдельных элементов управления
В следующей таблице перечислены ограничения свойств, которые применяются к отдельным элементам управления в Visual Basic.

Свойство применяется к ограничению
Список и ListCount Элементы управления списком и полем со списком Максимальное количество элементов составляет 32 КБ; ограничение на размер каждого элемента составляет 1 КБ (1024 байта)."
Это об удобстве работы и перспективах.
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
15.06.2024, 18:37
Эти ограничения были сняты в новых версиях Windows

Добавлено через 1 минуту
Смотри мою тему Как добавить в список ListBox большое количество строк, чтобы это было быстро по времени? это уже обсуждалось можно и сто тысяч строк добавить в листбокс и миллион
1
 Аватар для Argus19
1427 / 444 / 78
Регистрация: 24.09.2017
Сообщений: 2,525
Записей в блоге: 22
15.06.2024, 19:07
Цитата Сообщение от HackerVlad Посмотреть сообщение
Эти ограничения были сняты в новых версиях Windows
Хорошо.
Я понимаю желание ТС сделать выбор в ListBox, но поиск видится не очень удобным.
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
15.06.2024, 19:14
Цитата Сообщение от Argus19 Посмотреть сообщение
но поиск видится не очень удобным
Какой ещё поиск? Ему нужно было просто удалять строчки. Я это сделал. Всё.
0
 Аватар для Argus19
1427 / 444 / 78
Регистрация: 24.09.2017
Сообщений: 2,525
Записей в блоге: 22
15.06.2024, 19:30
Цитата Сообщение от HackerVlad Посмотреть сообщение
Ему нужно было просто удалять строчки. Я это сделал.
O'K.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.06.2024, 19:30
Помогаю со студенческими работами здесь

Открытие текстового документа при выборе параметра и нажатии кнопки
Есть группа переключателей для каждого типа документа (текстовые файлы бланков документов выложены в отдельную папку, причем по всем...

Как изменить стиль при выборе checkbox и нажатии кнопки
Добрый день. Написал код, который должен после выбора checkbox и нажатии на input менять цвет дива на красный. К сожалению, код не...

ListBox и его погрешность при выборе itemControl
Добрый вечер всем. Скажите пожалуйста, как решить проблему в моем случае. Есть listBox, каким образом не буду расписывать он заполняется....

Какое событие возникает при выборе элемента в ListBox
извините за тупой вопрос, но как называется эвент для листбокса, срабатывающий при выборе итема в нем? уже минут 20 втыкаю, уже до...

Как показать MsgBox при выборе элемента в ListBox
Добрый вечер) Подскажите, в чем ошибка. Фрагмент из кода: Private Sub LBx_Info_SelectedIndexChanged(ByVal sender As...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru