2009-03-24 8 views
1

HI,Listview Sélection

je dois choisir un seul élément (cellule) dans un listview

+0

Demandez-vous comment choisir un seul sous-élément dans une rangée (et non la totalité de la ligne) dans le mode détails d'un listview? –

+0

Winforms? WPF? Autre? –

Répondre

0

Le code suivant provoque tous les éléments d'une vue de la liste à ne pas être sélectionné, il provoque le point 2 être sélectionné. Je suis sûr que vous pouvez facilement adapter ce code à votre problème. En passant, les éléments de la vue liste utilisent une indexation à base zéro; par conséquent, l'élément # 2 est en fait le troisième élément de la vue de liste.

 for (int i = 0; i < listView1.Items.Count; i++) 
     { 
      listView1.Items[i].Selected = false; 
     } 

     // select item #2 
     listView1.Items[2].Selected = true; 
2

Vous ne pouvez pas sélectionner des 'sous-éléments' dans un ListView. Si vous voulez pouvoir sélectionner des 'cellules', vous devrez utiliser un gridview.

1

J'ai développé un composant tiers appelé Better ListView, qui permet de sélectionner des sous-éléments à l'aide des touches fléchées.

Il est également possible d'étiqueter des sous-éléments, d'utiliser des icônes et autres.

Si vous avez besoin d'utiliser des sous-éléments comme des cellules largement, les contrôles de type grille sont le meilleur choix pour vous, puisque ceux-ci sont mieux conçus pour matrices, au lieu de listes.

1

S'il n'est pas possible de sélectionner une seule cellule, il est possible de REFERER la valeur d'une seule cellule. Le lien ci-dessous a une réponse pour cela (obtenir une valeur pour une cellule).

http://msdn.microsoft.com/en-us/library/system.windows.forms.listview.selecteditems.aspx

 // Uses the SelectedItems property to retrieve and tally the price 
    // of the selected menu items. 

private void ListView1_SelectedIndexChanged_UsingItems(
    object sender, System.EventArgs e) 
{ 

    ListView.SelectedListViewItemCollection breakfast = 
     this.ListView1.SelectedItems; 

    double price = 0.0; 
    foreach (ListViewItem item in breakfast) 
    { 
     price += Double.Parse(item.SubItems[1].Text); 
    } 

    // Output the price to TextBox1. 
    TextBox1.Text = price.ToString(); 
} 
Questions connexes