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

Вот задача:
Из учеников класса набирается баскетбольная команда (рост должен быть не менее 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
04.03.2013, 23:59
    #38173990
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавляет лишние элементы в ListBox.
Лучше все-таки приложить файл формы, а не только код
...
Рейтинг: 0 / 0
05.03.2013, 00:06
    #38173992
FRANQ1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавляет лишние элементы в ListBox.
Shocker.Pro,

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

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

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

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



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


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