powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Добавляет лишние элементы в ListBox.
9 сообщений из 9, страница 1 из 1
Добавляет лишние элементы в ListBox.
    #38173979
FRANQ1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите пожалуйста.

Вот задача:
Из учеников класса набирается баскетбольная команда (рост должен быть не менее 170 см). Известны фамилии учеников и рост каждого ученика. Для каждого вывести сообщение "Подходит"/"Не подходит" и подсчитать число подходящих учеников.

Мой код:

Код: vbnet
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.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
Option Explicit
Private e As Variant

Private Sub usloviya()
Dim n As Integer, a As String, b As Integer, z As Integer, i As Integer, x As Integer
n = Lst1.ListCount - 1
z = 0
x = 0
If Lst1.ListCount = 0 Then
   cmdDel.Enabled = False
   cmdCus.Enabled = False
   cmdAdd.Enabled = True
Else
For i = 0 To n
  a = Lst1.List(i)
  b = Lst2.List(i)
   If b >= 170 Then
     Lst3.AddItem ("Подходит")
     x = x + 1
   Else
     Lst3.AddItem ("Не подходит")
   End If
Next i
End If
lbl.Caption = x
cmdAdd.Enabled = True
cmdDel.Enabled = True
cmdCus.Enabled = True
End Sub

Private Sub cmdAdd_Click()
Dim a As String, b As Integer, i As String
On Error GoTo m
Do
  a = InputBox("Введите фамилию", "Ввод")
  b = InputBox("Введите рост", "Ввод")
  Lst1.AddItem (a)
  Lst2.AddItem (b)
  i = MsgBox("Добавить еще?", vbOKCancel, "Ввод")
Loop While i = vbOK
Call usloviya
Exit Sub
m:
  MsgBox "Ошибка ввода данных", vbCritical, _
  "Error"
End Sub

Private Sub cmdDel_Click()
Dim v As String
'If Lst1.ListIndex <> -1 Then
  v = MsgBox("Удалить?", vbOKCancel, "Удаление")
   If v = vbOK Then
     Lst1.RemoveItem (e)
     Lst2.RemoveItem (e)
     Lst3.RemoveItem (e)
     Call usloviya
   Else
     Lst1.ListIndex = -1
   End If
cmdAdd.Enabled = True
cmdDel.Enabled = False
cmdCus.Enabled = False
'End If
End Sub

Private Sub cmdCus_Click()
Dim m As String, a As String, x As Integer, f As String
If MsgBox("Заменить фамилию?", vbOKCancel, "Замена") = vbOK Then
  a = InputBox("Введите Фамилию", "Замена")
  Lst1.RemoveItem e
  Lst1.AddItem a, e
End If
If MsgBox("Заменить рост?", vbOKCancel, "Замена") = vbOK Then
  x = InputBox("Введите рост", "Замена")
  Lst2.RemoveItem e
  Lst2.AddItem x, e
End If
Lst1.ListIndex = -1
Lst2.ListIndex = -1
Lst3.ListIndex = -1
Call usloviya
cmdAdd.Enabled = True
cmdDel.Enabled = False
cmdCus.Enabled = False
End Sub

Private Sub Form_Load()
If Lst1.ListCount = 0 Then
cmdAdd.Enabled = True
cmdDel.Enabled = False
cmdCus.Enabled = False
End If
End Sub

Private Sub Lst1_Click()
e = Lst1.ListIndex
Lst2.ListIndex = e
Lst3.ListIndex = e
cmdAdd.Enabled = False
cmdDel.Enabled = True
cmdCus.Enabled = True
End Sub




Добавил элементы, все правильно считает:
http://cs323927.vk.me/v323927768/5f68/lAsq5tcsZtc.jpg

Но после того, как удаляю, либо заменяю любую строку, в 3 ListBox добавляет несколько новых элементов:
http://cs323927.vk.me/v323927768/5f6f/HgJ4fEkXQMM.jpg

Как сделать так, чтобы не добавляло эти элементы.
...
Рейтинг: 0 / 0
Добавляет лишние элементы в ListBox.
    #38173990
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лучше все-таки приложить файл формы, а не только код
...
Рейтинг: 0 / 0
Добавляет лишние элементы в ListBox.
    #38173992
FRANQ1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

в конце 2 ссылки на изображения.
...
Рейтинг: 0 / 0
Добавляет лишние элементы в ListBox.
    #38173996
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FRANQ1в конце 2 ссылки на изображения.вы предлагаете открыть эти изображения в VB, посмотреть, как работает программа, понажимать на нарисованные кнопки, протрассировать и т.п.?

не хотите, дело ваше, непонятно, кому помощь нужна....
...
Рейтинг: 0 / 0
Добавляет лишние элементы в ListBox.
    #38174000
FRANQ1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,
...
Рейтинг: 0 / 0
Добавляет лишние элементы в ListBox.
    #38174026
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
Private Sub usloviya()
Me.Lst3.Clear
...
...
Рейтинг: 0 / 0
Добавляет лишние элементы в ListBox.
    #38174261
FRANQ1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

спасибо ^_^
...
Рейтинг: 0 / 0
Добавляет лишние элементы в ListBox.
    #38179916
FRANQ1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shoker.Pro

Shocker.Pro
Код: vbnet
1.
2.
3.
Private Sub usloviya()
Me.Lst3.Clear
...



как ведет себя ключевое слово "Me" в данном случае, и на что его можно заменить, чтобы замена была равноценной
...
Рейтинг: 0 / 0
Добавляет лишние элементы в ListBox.
    #38179937
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FRANQ1как ведет себя ключевое слово "Me" в данном случае, и на что его можно заменить, чтобы замена была равноценнойMe - это ссылка на текущую форму, то есть на ту форму, в которой выполняется код. Заменить можно на объектную переменную, ссылающуюся на нужную форму, можно заменить на имя формы, если форма с таким именем запущена в единственном экземпляре. В данном случае можно вообще убрать, так как код выполняется в контексте формы и при всех обращениях к объектам формы "Me." и так неявно подразумевается.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Добавляет лишние элементы в ListBox.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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