Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / какое событие отслеживает передвижение стрелками курсора по записям в Listview? / 18 сообщений из 18, страница 1 из 1
13.12.2012, 17:05
    #38078186
Karlus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
какое событие отслеживает передвижение стрелками курсора по записям в Listview?
Добрый день. подскажите, какое событие происходит при передвижении стрелками курсора по listview?
Есть код
Код: vbnet
1.
2.
3.
Private Sub ListView1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListView1.MouseClick
Label1.Text = MData(ListView1.FocusedItem.Index, 0)
    End Sub


Нужно чтобы в label1 подставлялись данные не только при выборе курсором мыши, но при перемещении стрелками курсора
...
Рейтинг: 0 / 0
13.12.2012, 17:33
    #38078249
pation
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
какое событие отслеживает передвижение стрелками курсора по записям в Listview?
Karlus,

MouseMove
...
Рейтинг: 0 / 0
13.12.2012, 17:45
    #38078273
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
какое событие отслеживает передвижение стрелками курсора по записям в Listview?
Karlus,

SelectedIndexChanged
...
Рейтинг: 0 / 0
13.12.2012, 18:01
    #38078298
Karlus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
какое событие отслеживает передвижение стрелками курсора по записям в Listview?
MouseMove - вообще не то. Это событие при движении курсора мыши над listview
А вот с SelectedIndexChanged не получилось
Код: vbnet
1.
2.
3.
 Private Sub ListView1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListView1.SelectedIndexChanged
        Label1.Text = MData(ListView1.FocusedItem.Index, 0)
    End Sub


В этом коде выдает ошибку, что нет ссылки на объект. Я так понимаю, что событие отрабатывает ДО передачи фокуса строчке, соответственно нет строчки с фокусом. Что тогда использовать вместо ListView1.FocusedItem.Index?
...
Рейтинг: 0 / 0
14.12.2012, 07:35
    #38078835
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
какое событие отслеживает передвижение стрелками курсора по записям в Listview?
что то я не понимаю автора вообще :)
есть SeletectItems, если групповой выборки нет, то выбранным будет всегда (ListViewItem)SeletectItems[0]
а событие как уже писали выше obj. SelectedIndexChanged +=new EventHandler(obj_SelectedIndexChanged);
...
Рейтинг: 0 / 0
14.12.2012, 10:25
    #38078975
Karlus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
какое событие отслеживает передвижение стрелками курсора по записям в Listview?
Если я правильно понимаю, то нужно писать следующим образом
Код: vbnet
1.
2.
3.
Private Sub ListView1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListView1.SelectedIndexChanged
             Label1.Text = ListView1.SelectedItems(0).Index
    End Sub


Но при выборе любой строчки выдается ошибка:
InvalidArgument=Значение "0" недопустимо для "index". Имя параметра: index
...
Рейтинг: 0 / 0
14.12.2012, 10:50
    #38079016
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
какое событие отслеживает передвижение стрелками курсора по записям в Listview?
Karlus,

вы обращаетесь сразу к 0 элементу не удостоверившись существует ли он вообще.
то есть надо сперва сделать проверку, есть ли вообще выделенные элементы
что то типа
If SelectItems.Count > 0 then ...
if (SelectItems.Count > 0) ...
...
Рейтинг: 0 / 0
14.12.2012, 10:51
    #38079017
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
какое событие отслеживает передвижение стрелками курсора по записям в Listview?
Roman Mejtes,

тут ошибка сообщает не о поле Index, а о значении index которое вы передаете в SelectedItems[ index ]
...
Рейтинг: 0 / 0
14.12.2012, 11:01
    #38079032
Karlus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
какое событие отслеживает передвижение стрелками курсора по записям в Listview?
Roman Mejtes,
Вот так действительно заработало:
Код: vbnet
1.
2.
3.
4.
5.
6.
Private Sub ListView1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListView1.SelectedIndexChanged
              If ListView1.SelectedItems.Count > 0 Then
            Label1.Text = ListView1.SelectedItems(0).Index
        End If

    End Sub


Но я не пойму смысла. В чем причина, что без условия не работает?
Тестирую на одних и тех строчках. Если без условия выдает ошибку, то, по логике, с условием не должно просто выполнится, ан нет, выполняется.
...
Рейтинг: 0 / 0
14.12.2012, 11:17
    #38079064
fortibransa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
какое событие отслеживает передвижение стрелками курсора по записям в Listview?
Просто в какой-то момент в ListView1.SelectedItems вообще нихрена нету.
...
Рейтинг: 0 / 0
14.12.2012, 11:40
    #38079108
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
какое событие отслеживает передвижение стрелками курсора по записям в Listview?
Karlus,

коллекция SelectedItems существует всегда, но не всегда количество элементов в ней больше 0, это же очевидно
...
Рейтинг: 0 / 0
14.12.2012, 12:42
    #38079233
Karlus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
какое событие отслеживает передвижение стрелками курсора по записям в Listview?
Roman Mejtes,
Это-то очевидно, но я не могу понять почему вылетает ошибка без условия, если условие истинно всегда. А при наличии этого условия все отрабатывает. Такое ощущение что это условие определяет выделение строки.
...
Рейтинг: 0 / 0
14.12.2012, 13:16
    #38079297
fortibransa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
какое событие отслеживает передвижение стрелками курсора по записям в Listview?
KarlusRoman Mejtes,
Это-то очевидно, но я не могу понять почему вылетает ошибка без условия, если условие истинно всегда. А при наличии этого условия все отрабатывает. Такое ощущение что это условие определяет выделение строки.Тебе же пишут, что оно истинно не всегда.
...
Рейтинг: 0 / 0
14.12.2012, 15:25
    #38079579
Karlus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
какое событие отслеживает передвижение стрелками курсора по записям в Listview?
fortibransa,
Тогда почему с этим условием ВСЕГДА отрабатывает. Я этого понять не могу. В чем особенность?
Я и прошу объяснить суть этого явления, которое я не могу увязать с описанием события.
по описанию: событие случается после выбора строки. При этом ни ListView1.FocusedItem.Index, ни ListView1.SelectedItems(0).Index ни есть истина. А условие ListView1.SelectedItems.Count > 0 - истина.
Я нахожу только одно объяснение, что это событие наступает 2 раза, до выбора строки и после, но это не соответствует описанию.
Прав я или нет. Я просто хочу разобраться
...
Рейтинг: 0 / 0
14.12.2012, 15:51
    #38079627
fortibransa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
какое событие отслеживает передвижение стрелками курсора по записям в Listview?
Karlusfortibransa,
Тогда почему с этим условием ВСЕГДА отрабатывает. Я этого понять не могу. В чем особенность?
Я и прошу объяснить суть этого явления, которое я не могу увязать с описанием события.
по описанию: событие случается после выбора строки. При этом ни ListView1.FocusedItem.Index, ни ListView1.SelectedItems(0).Index ни есть истина. А условие ListView1.SelectedItems.Count > 0 - истина.
Я нахожу только одно объяснение, что это событие наступает 2 раза, до выбора строки и после, но это не соответствует описанию.
Прав я или нет. Я просто хочу разобратьсяну дык поставь точку останова, до проверки условия и увидишь сколько раз происходит данное событие. Скорее всего призагрузке формы и отрисовки контролов или там еще что когда еще у листа нету данные а select этот происходит, потом в лист загружаются данные и опять происходит этот select
...
Рейтинг: 0 / 0
14.12.2012, 15:59
    #38079646
Karlus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
какое событие отслеживает передвижение стрелками курсора по записям в Listview?
Проверил с точками остановки, выяснилось что при смене строки любым способом (клавиши курсора, PageUp, мышка и т.д.) событие наступает 2 раза.
1 - при снятии фокуса со старой строки.
2 - при установки фокуса на новую строку.
Всем спасибо за подсказки!
...
Рейтинг: 0 / 0
14.12.2012, 16:02
    #38079657
Lexxxxx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
какое событие отслеживает передвижение стрелками курсора по записям в Listview?
KarlusПроверил с точками остановки, выяснилось что при смене строки любым способом (клавиши курсора, PageUp, мышка и т.д.) событие наступает 2 раза.
1 - при снятии фокуса со старой строки.
2 - при установки фокуса на новую строку.
Всем спасибо за подсказки!

Хорошо проверяли? Точно два раза?!
...
Рейтинг: 0 / 0
14.12.2012, 16:09
    #38079672
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
какое событие отслеживает передвижение стрелками курсора по записям в Listview?
Karlus, самостоятельно документацию сложно почитать? ListView.SelectedIndex Property
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / какое событие отслеживает передвижение стрелками курсора по записям в Listview? / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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