Как я могу удалить фокус со всех элементов в элементе управления ListView?

StackOverflow https://stackoverflow.com/questions/813826

  •  03-07-2019
  •  | 
  •  

Вопрос

В ListView контроль, основное внимание уделяется некоторым Item внутри этого элемента управления, то есть элемент управления поддерживает свое собственное внутреннее представление о том, что находится в фокусе, которое может быть извлечено с помощью FocusedItem собственность.

Я бы хотел НЕТ предметы, на которых нужно сосредоточить внимание.Другими словами, я хочу, чтобы FocusedItem свойство, которое нужно установить равным null.Есть какие-нибудь идеи, как я мог бы этого добиться?

Это было полезно?

Решение

Чтобы расширить ответ Вануана:

if (listView1.FocusedItem != null)
{
    listView1.FocusedItem.Focused = false;
}

Что-то подсказывает мне, что вы также хотите отменить выбор элемента. Итак, вы, вероятно, тоже хотите это сделать:

if (listView1.SelectedItems.Count != 0)
{
    listView1.SelectedItems[0].Selected = false;
}

Другие советы

Я думаю, это

listView1.FocusedItem.Focused=false;

Убедитесь, что listView1.FocusedItem не является нулевым.

(спасибо brianpeiris за расширение)

Когда новые элементы добавляются в элемент управления списком, он рисует пунктирную рамку вокруг элементов.Есть некоторые ситуации, когда вам не нужен этот визуальный сигнал.Достаточно просто выделить выбранный элемент (ы) на видном месте.Вот один из способов предотвратить отображение пунктирной рамки при добавлении новых элементов в элемент управления списком.

ListViewItem item = new ListViewItem();
myListView.Items.Add(item);
myListView.SelectedItems.Clear();
myListView.FocusedItem = null;
myListView.Refresh();

Обновить:
Мое решение не устраняет проблему.Я хотел бы, чтобы существовал простой способ "расфокусировать" элемент управления, но после нескольких часов поиска в Google я не смог найти ни одного.Я тоже искал способ предотвратить появление этих пунктирных линий.Когда я нажимаю кнопку, чтобы добавить элементы просмотра списка, проблем нет.Это появляется только тогда, когда я нажимаю enter после нажатия вкладки на кнопку (получение фокуса ввода).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top