Pergunta

Em um controle ListView, o foco está em algum Item dentro desse controle - isto é, o controle mantém a sua própria noção interna do que está em foco, o que pode ser recuperada usando a propriedade FocusedItem.

Gostaria não itens a ser focado. Em outras palavras, eu quero a propriedade FocusedItem ao conjunto de null. Alguma idéia de como eu poderia fazer isso?

Foi útil?

Solução

Para expandir a resposta de Vanuan:

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

Algo me diz que você também quiser un-selecionar o item. Então, você provavelmente vai querer fazer isso também:

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

Outras dicas

Eu acho, é

listView1.FocusedItem.Focused=false;

Certifique-se de que listView1.FocusedItem não é nulo.

(graças a brianpeiris para expandir)

Quando os novos itens são adicionados a um controle de exibição de lista, chama a caixa pontilhada em torno dos itens. Existem algumas situações em que você não quer que esta sugestão visual. Basta ter o item seleccionado (s) hightlighted é suficiente. Aqui está uma maneira de impedir que a caixa pontilhada de aparecer quando a adição de novos itens a um controle de exibição de lista.

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

UPDATE:
Minha solução não resolver o problema. Eu gostaria que houvesse uma simples maneira de "desfocar" um controle, mas depois de pesquisar por várias horas eu não poderia encontrar qualquer. Eu também estava procurando uma maneira de impedir que essas linhas pontilhadas de aparecer. Quando eu clicar em um botão para adicionar itens de lista vista não há nenhum problema. É só quando eu pressione enter depois de tabulação em um botão (foco de entrada recebendo) faz isso aparecer.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top