Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: ListIndex = -1 Добавлено: 17.02.04 02:34  

Автор вопроса:  cresta
Просьба: помогите разобраться, в чём дело.Есть 4 листбокса. Есть строка в коде:
frm1.List1(ActiveIndex).ListIndex = -1 ' снять выделение в листбоксе.
В IDE строка работает нормально, в откомпилированном виде при ActiveIndex=1,2 или 3 тоже работает нормально. Выделение со списка снимает. А при ActiveIndex=0 программа на этой строке
вылетает. Все свойства этих четырех листбоксов одинаковы.Пробовал frm1.List1(CInt(ActiveIndex)).ListIndex = -1 - ничего не дает. Почему List1(0) себя так ведет - не пойму.

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #1
Добавлено: 17.02.04 02:43

У меня всё нормально. Или давай код или попробуй обновить VBRUN'ы

http://activex.microsoft.com/controls/vb6/vbrun60.cab

 

Ответить

Номер ответа: 2
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #2 Добавлено: 17.02.04 03:07

Вот такой код ( поиск по спискам - списки это листбоксы. В трёх списках поиск работает, в нулевом - нет. Причем только в ехе)

Private Sub UserControl12_Click()' поиск по листбоксу
    Dim strs As String, i As Long
    If Trim$(Текст1.Text) = "" Or Форма1.List1(ActiveIndex).ListCount < 1 Then Exit Sub
    Форма1.List1(CInt(ActiveIndex)).ListIndex = -1'-здесь ехе вылетает
    For i = 0 To Форма1.List1(ActiveIndex).ListCount - 1
        strs = Форма1.List1(ActiveIndex).List(i)
        If InStr(UCase(strs), UCase(Trim$(Текст1.Text))) Then
            Форма1.List1(ActiveIndex).ListIndex = i
            flgFind = True: start = i
            Exit For
        End If
    Next i
End Sub

Ответить

Номер ответа: 3
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #3
Добавлено: 17.02.04 03:13
Кинь проект на мыло - я гляну.

Ответить

Номер ответа: 4
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #4 Добавлено: 17.02.04 03:53

Нашёл в чём дело:  в событии List1_Click сидит массив, его индекс синхронизирован с индексом списка, и не должен быть меньше нуля. frm1.List1(ActiveIndex).ListIndex = -1 вызывает событие click и массив заклинивает по индексу Arr(-1).  Поставил в List1_Click:  If List1(0).ListIndex<0 then Exit Sub. Работает. Непонятно, почему в IDE ошибка не выявляется, при этом все работает как должно (или как не должно)...

Ну ладно. Спасибо за участие

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам