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

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

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

Ответы [ 3 ]

7 голосов
/ 02 мая 2009

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

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

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

if (listView1.SelectedItems.Count != 0)
{
    listView1.SelectedItems[0].Selected = false;
}
4 голосов
/ 02 мая 2009

Я думаю, это

listView1.FocusedItem.Focused=false;

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

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

1 голос
/ 01 ноября 2010

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...