Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 | 2 | 3 | 4 |

 

  Вопрос: ListView, Highlight строку Добавлено: 01.09.10 22:40  

Автор вопроса:  

Ответить

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

Номер ответа: 31
Автор ответа:
 



Вопросов: 1
Ответов: 26
 Профиль | | #31 Добавлено: 08.09.10 22:03
Понятно, спасибо.
Я написал так:
 
  1. Private Sub lsvDogs_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lsvDogs.SelectedIndexChanged
  2.  
  3.         Dim k As Int16
  4.         k = pgfDogsInfo.SelectedIndex
  5.     End Sub

В этом случае k=1
Если Вы посмотрите на мои коды (строки 265-282), то увидите, что я проверяю на какой вкладке я нахожусь. Именно для случая k=1 "включается" процедура DisplayDogs(), то есть там, где нет подсветки

Ответить

Номер ответа: 32
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #32 Добавлено: 08.09.10 22:09
Так.. давайте проясним.. чем у вас является pgfDogsInfo, а чем lsvDogs?

Ответить

Номер ответа: 33
Автор ответа:
 



Вопросов: 1
Ответов: 26
 Профиль | | #33 Добавлено: 08.09.10 22:18
Некоторые предварительные пояснения. Я "перекладываю" свои проекты с FoxPro, поэтому сохранил некоторые имена. В FoxPro, TabControl называется pageframe, отсюда - pgf. Итак, pgfDogsInfo - TabControl, pgeDogs и pgeTags - TabPages (или вкладки), lsvDogs и lsvTgs - ListViews на вкладках pgeDogs и pgeTags соответственно.

Ответить

Номер ответа: 34
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #34 Добавлено: 08.09.10 22:35
Ок, тогда в процедуре pgfDogsInfo_Selected (при выборе "дефектной" вкладки) после строки DisplayDogs() вставьте lsvDogs.Focus()

Ответить

Номер ответа: 35
Автор ответа:
 



Вопросов: 1
Ответов: 26
 Профиль | | #35 Добавлено: 08.09.10 22:40
Вставил. Не подсвечивается.
Прежде, чем мы продолжим... У меня Visual Studio 2005. Может это быть причиной? Хотя, с другой стороны, в другом месте-то работает...

Ответить

Номер ответа: 36
Автор ответа:
 



Вопросов: 1
Ответов: 26
 Профиль | | #36 Добавлено: 08.09.10 23:10
Я не знаю, это поможет или нет...
У меня есть ещё одна форма, где я использую ListView. Так вот, при отладке я заметил, что в той форме после строки
lsvDogs.Items(SelDog).Selected = True
сразу выполняется процедура
lsvDogs_ItemSelectionChanged (в обозначениях данной формы), а в этой форме указанная процедура выполняется самой последней, то есть, даже после команды Focus()
Но даже если я поставлю фокус в конце этой процедуры, строка всё равно не подсвечивается.

Ответить

Номер ответа: 37
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #37 Добавлено: 08.09.10 23:12
Версия студии роли не играет..
Так, тогда идем в DisplayDogs и ставим BreakPoint на строчку lsvDogs.Items(SelDog).Selected = True и проверяем значение SelDog, возможно оно имеет индекс несуществующией строки.. -1 или 100500 .. в этом случае не будет выделенной строки..

Ответить

Номер ответа: 38
Автор ответа:
 



Вопросов: 1
Ответов: 26
 Профиль | | #38 Добавлено: 08.09.10 23:15
SelDog = 0

Ответить

Номер ответа: 39
Автор ответа:
 



Вопросов: 1
Ответов: 26
 Профиль | | #39 Добавлено: 08.09.10 23:18
Я уже писал, что когда я добавил к своим кодам команду
  1. lsvDogs.HideSelection = False

строка стала "как бы" повсвечиваться серым цветом

Ответить

Номер ответа: 40
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #40 Добавлено: 08.09.10 23:38
Мда, тяжелый случай...
Ваш lsvDogs, по каким то причинам не получет фокус, надо искать кто его отбирает..

Ответить

Номер ответа: 41
Автор ответа:
 



Вопросов: 1
Ответов: 26
 Профиль | | #41 Добавлено: 08.09.10 23:42
Сейчас попробую...

Ответить

Номер ответа: 42
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #42 Добавлено: 08.09.10 23:47
Вот что попробуйте сделать.. поставьте breakpoint на lsvDogs_ItemSelectionChanged и проанализируйте какие строки у вас выделяются при переходе по вкладкам..

Ответить

Номер ответа: 43
Автор ответа:
 



Вопросов: 1
Ответов: 26
 Профиль | | #43 Добавлено: 09.09.10 00:00
Это я уже проверял раньше. Всегда - нулевая.
Кстати, я добавил одну строку к кодам
  1. Private Sub lsvDogs_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lsvDogs.SelectedIndexChanged
  2.  
  3.         Dim k As Int16
  4.         k = pgfDogsInfo.SelectedIndex
  5.         lsvDogs.Focus()
  6.     End Sub
и в режиме отдадки команда lsvDogs.Focus() выполняется последней, но результат тот же.
Мне надо уходить. Спасибо за помощь. Я не думаю, что Вы как-то сможете мне помочь. Вы стараетесь найти ошибку в логике, но я думаю, что проблема в самих контолах. Я, правда, прошёлся по всем параметрам в обоих ListView, и не нашёл различия, но всё же я думаю, что я что-то упускаю...
Ещё раз - спасибо за Ваше время. Если будет желание со мной просто переписываться, напишите.
До свидания
Иосиф

Ответить

Номер ответа: 44
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #44 Добавлено: 09.09.10 00:02
Проблема в контроле исключена..
удачи..

Ответить

Номер ответа: 45
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #45 Добавлено: 09.09.10 08:45
Ошибка в контроле FCL? Которую не нашли за 10 лет? Кроме слова "удачи" мне тоже добавить нечего :)

Ответить

Страница: 1 | 2 | 3 | 4 |

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



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