sora97 Ответов: 3

Как обновить listview без потери выбранного элемента?


Как обновить listview без потери выбранного элемента?


Я искал в google, но безуспешно.... :(

Я создаю приложение типа process explorer в visual studio 2005 (vb.net)
и когда я нажимаю кнопку обновить, мой текущий выбранный элемент исчезает, теперь я не знаю, как сохранить выбранный элемент, даже если я нажимаю кнопку Обновить
вот мой код для listview:

список всех процессов в элемент управления ListView
Private Sub ListProcesses()
      Dim ps() As Process
      Try
          ps = Process.GetProcesses()
          lvProcesses.BeginUpdate()
          lvProcesses.Clear()
          lvProcesses.Columns.Add("Name", 100, HorizontalAlignment.Left)
          lvProcesses.Columns.Add("ID", 60, HorizontalAlignment.Left)
          lvProcesses.Columns.Add("Priority", 60, HorizontalAlignment.Right)
          lvProcesses.Columns.Add("Memory(bytes)", 100, HorizontalAlignment.Right)
          Dim p As Process
          For Each p In ps
              Dim lvi As ListViewItem = New ListViewItem()
              lvi.Text = p.ProcessName
              lvi.SubItems.Add(p.Id.ToString())
              lvi.SubItems.Add(p.BasePriority.ToString())
              lvi.SubItems.Add(p.WorkingSet64.ToString())
              lvProcesses.Items.Add(lvi)
          Next p
          lvProcesses.EndUpdate()
      Catch e As Exception
          MessageBox.Show(e.Message)
      End Try
  End Sub



'refreshbtn
ListProcesses()

Dim selectedit As String
selectedit = lvProcesses.SelectedItems(0).Text
Me.lvProcesses.Items(selectedit).Selected = True


'элемент управления ListView
'выбранный элемент @ listview
lvProcesses.SelectedItems(0).SubItems(0).Text



исходный код списка ListView :
<a href="http://www.java2s.com/Tutorial/VB/0140__Development/ListallprocessinaListView.htm">http://www.java2s.com/Tutorial/VB/0140__Development/ListallprocessinaListView.htm</a>[<a href="http://www.java2s.com/Tutorial/VB/0140__Development/ListallprocessinaListView.htm" target="_blank" title="New Window">^</a>]




Спасибо!
Любая помощь будет оценена по достоинству! :) :) :) :) :)

3 Ответов

Рейтинг:
2

Member 11661112

Попробовать это

Dim selectedit как целое число
selectedit = lvProcesses.Сфокусированный взгляд.Индекс

ListProcesses()

lvProcesses.Предметы.Пункт(selectedit).Ориентирован = Истина
lvProcesses.Предметы.Пункт(selectedit).Selected = True

Бруно.


Рейтинг:
1

Uday P.Singh

Ссылаться этот [^]и прочел весь разговор.

надеюсь, это поможет :)


Рейтинг:
0

Sergey Alexandrovich Kryukov

Из вашего вопроса я не вижу, что именно делает ваше обновление. Неважно; в принципе, вам просто нужно запомнить выбор перед обновлением и установить его после обновления. Если вы вставляете или удаляете какие-либо элементы перед выбором, вы должны принять это во внимание и сдвинуть индекс строки, которая будет выбрана соответствующим образом.

—СА