Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> траблы с ListView!!! метод SelectedIndexChanged 
:(
    Опции темы
HellMasterHaiL
Дата 3.4.2007, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 181
Регистрация: 9.8.2006
Где: Россия, МО, г. Юб илейный

Репутация: нет
Всего: 1



Боброе бубро!)))
в общем дело такое:

Код

Private Sub lvUsers_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lvUsers.SelectedIndexChanged
        Me.Cursor = Cursors.WaitCursor
        Me.tcUsers.Enabled = True

        MessageBox.Show(Me.lvUsers.SelectedItems(0).Text)

        Dim lcSQL As String
        Dim myCon As SqlClient.SqlConnection
        Dim myCommand As New SqlClient.SqlCommand(lcSQL, myCon)
        Dim myReader As SqlClient.SqlDataReader
        myCon = New SqlClient.SqlConnection(My.Settings.connStr)
        myCon.Open()
        'записываю значения в лейблы
        lcSQL = "SELECT nameUser, DomainUserName, NameFIO FROM atUser WHERE (id = " & CInt(Me.lvUsers.SelectedItems(0).Text) & ")"
        myCommand = New SqlClient.SqlCommand(lcSQL, myCon)
        myReader = myCommand.ExecuteReader()
        If myReader.Read() Then
            If Not (myReader.IsDBNull(0)) Then
                Me.tbUserLogin.Text &= myReader.GetString(0)
                Me.tbUserLogin2.Text &= myReader.GetString(0)
                Me.tbUserLogin3.Text &= myReader.GetString(0)
            Else
                Me.tbUserLogin.Text &= ""
                Me.tbUserLogin2.Text &= ""
                Me.tbUserLogin3.Text &= ""
            End If
            If Not (myReader.IsDBNull(1)) Then
                Me.tbSystemLoginUser.Text &= myReader.GetString(1)
                Me.tbSystemLoginUser2.Text &= myReader.GetString(1)
                Me.tbSystemLoginUser3.Text &= myReader.GetString(1)
            Else
                Me.tbSystemLoginUser.Text &= ""
                Me.tbSystemLoginUser2.Text &= ""
                Me.tbSystemLoginUser3.Text &= ""
            End If
            If Not (myReader.IsDBNull(2)) Then
                Me.tbFIOUser.Text &= myReader.GetString(2)
                Me.tbFIOUser2.Text &= myReader.GetString(2)
                Me.tbFIOUser3.Text &= myReader.GetString(2)
            Else
                Me.tbFIOUser.Text &= ""
                Me.tbFIOUser2.Text &= ""
                Me.tbFIOUser3.Text &= ""
            End If
        End If
        myReader.Close()
        myCon.Close()

        Me.Cursor = Cursors.Default
    End Sub

- дело простое, при выборе строки в листвьере заполняю несколько текстбоксов... При первом проходе все работает нормально, данные в текстоксы загружаются, но как только я повторно выбираю другую (или туже) строку в листбоксе, то рождается нечто типа:
Цитата

InvalidArgument=Значение '0' недопустимо для 'index'.
Имя параметра: index

Естественно смысл ошибки мне ясен, только я не понимаю нифига почему она, эта мура, возникает и как с этой падлой бороться?
 smile 


PM MAIL ICQ   Вверх
altarvic
Дата 3.4.2007, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 2.3.2007

Репутация: нет
Всего: 1



Цитата(HellMasterHaiL @  3.4.2007,  10:17 Найти цитируемый пост)
как с этой падлой бороться?

видимо проверкой на

Me.lvUsers.SelectedItems.Count > 0

Это сообщение отредактировал(а) altarvic - 3.4.2007, 10:25
PM MAIL   Вверх
HellMasterHaiL
Дата 3.4.2007, 10:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 181
Регистрация: 9.8.2006
Где: Россия, МО, г. Юб илейный

Репутация: нет
Всего: 1



altarvic, этим я банально обойду ошибку, т.е. соответственно текстбоксы, при выборе строки в листвьере, обновлятся не будут, что в принципе абсолютно не желательно!
PM MAIL ICQ   Вверх
altarvic
Дата 3.4.2007, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 2.3.2007

Репутация: нет
Всего: 1



Разве избежать ошибки - не про это ли ты спрашивал?
При выборе строки в листвьюере Me.lvUsers.SelectedItems.Count будет точно больше 0 значит все отобразится как надо.
PM MAIL   Вверх
HellMasterHaiL
Дата 3.4.2007, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 181
Регистрация: 9.8.2006
Где: Россия, МО, г. Юб илейный

Репутация: нет
Всего: 1



Все, понял! просто почемуто процедура lvUsers_SelectChamged, при повторном выборе итема, срабатывает дважды (!). Один раз с каунтом = 0, а второй с каунтом = 1. Возможно это из-за того, что у меня два поля в строке...
В общем разобралси)))

altarvic, спасибки!

PM MAIL ICQ   Вверх
altarvic
Дата 3.4.2007, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 2.3.2007

Репутация: нет
Всего: 1



просто это событие срабатывает не когда выбирается определенная строка (это некорректное описание), а когда меняется статус Selected у строки. А Selected может стать и false => событие сработает, но строка не стала выбранной, а наоборот (отсюда количество выбранных строк 0)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0494 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.