Come posso rimuovere lo stato attivo da tutti gli elementi in un controllo ListView?

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

  •  03-07-2019
  •  | 
  •  

Domanda

In un controllo ListView , l'attenzione è focalizzata su alcuni Item all'interno di quel controllo - ovvero, il controllo mantiene la propria nozione interna di ciò che è attivo, che può essere recuperato utilizzando la proprietà FocusedItem .

Vorrei che no fossero focalizzati. In altre parole, voglio che la proprietà FocusedItem sia impostata su null . Hai idea di come potrei ottenere questo?

È stato utile?

Soluzione

Per espandere la risposta di Vanuan:

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

Qualcosa mi dice che vuoi anche deselezionare l'elemento. Quindi, probabilmente vorrai farlo anche tu:

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

Altri suggerimenti

Penso che sia

listView1.FocusedItem.Focused=false;

Assicurati che listView1.FocusedItem non sia null.

(Grazie a brianpeiris per l'espansione)

Quando vengono aggiunti nuovi elementi a un controllo di visualizzazione elenco, viene disegnato un riquadro punteggiato attorno agli elementi. Ci sono alcune situazioni in cui non vuoi questo segnale visivo. È sufficiente evidenziare gli articoli selezionati. Ecco un modo per impedire la visualizzazione della casella punteggiata quando si aggiungono nuovi elementi a un controllo di visualizzazione elenco.

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

UPDATE:
La mia soluzione non risolve il problema. Vorrei che ci fosse un modo semplice per "unfocus" un controllo ma dopo aver cercato su Google per diverse ore non sono riuscito a trovarne. Anch'io cercavo un modo per impedire che quelle linee tratteggiate venissero visualizzate. Quando faccio clic su un pulsante per aggiungere elementi di visualizzazione elenco non c'è problema. È solo quando premo Invio dopo aver premuto il tasto Tab su un pulsante (ricevendo il focus di input) questo appare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top