J'apprends à utiliser le listView
dans un windowsForm
et j'ai quelques problèmes que j'espère résoudre ici. La première chose est quand je crée les colonnes avec le code ci-dessous:
private void initListView()
{
// Add columns
lvRegAnimals.Columns.Add("Id", -3,HorizontalAlignment.Left);
lvRegAnimals.Columns.Add("Name", -3, HorizontalAlignment.Left);
lvRegAnimals.Columns.Add("Age", -3, HorizontalAlignment.Left);
}
Lorsque j'exécute le programme, le nom des colonnes n'est pas visible, elles sont toutes dans le coin gauche, et je dois les "glisser" pour pouvoir lire le texte. Qu'est-ce que j'ai fait de mal?
Et enfin, je me demande comment ajouter des éléments aux colonnes. Dois-je d'abord créer un objet comme
ListViewItem item1 = new ListViewItem(???);
item1.SubItems.Add("text");
Chaque objet listViewItem est-il une colonne ou une ligne? Comment ajouter des lignes d'informations? Appréciez une aide! Merci!
Votre premier problème est que vous passez -3 au 2e paramètre de Columns.Add. Il doit être -2 pour qu'il redimensionne automatiquement la colonne. Source: http://msdn.Microsoft.com/en-us/library/system.windows.forms.listview.columns.aspx (regardez les commentaires sur l'exemple de code en bas)
private void initListView()
{
// Add columns
lvRegAnimals.Columns.Add("Id", -2,HorizontalAlignment.Left);
lvRegAnimals.Columns.Add("Name", -2, HorizontalAlignment.Left);
lvRegAnimals.Columns.Add("Age", -2, HorizontalAlignment.Left);
}
Vous pouvez également utiliser l'autre surcharge, Add (chaîne). Par exemple:
lvRegAnimals.Columns.Add("Id");
lvRegAnimals.Columns.Add("Name");
lvRegAnimals.Columns.Add("Age");
Référence pour plus de surcharges: http://msdn.Microsoft.com/en-us/library/system.windows.forms.listview.columnheadercollection.aspx
Deuxièmement, pour ajouter des éléments à ListView, vous devez créer des instances de ListViewItem et les ajouter à la collection Items de listView. Vous devrez utiliser le constructeur de chaîne [].
var item1 = new ListViewItem(new[] {"id123", "Tom", "24"});
var item2 = new ListViewItem(new[] {person.Id, person.Name, person.Age});
lvRegAnimals.Items.Add(item1);
lvRegAnimals.Items.Add(item2);
Vous pouvez également stocker des objets dans la propriété Tag de l'élément.
item2.Tag = person;
Et puis vous pouvez l'extraire
var person = item2.Tag as Person;
Faites-moi savoir si vous avez des questions et j'espère que cela vous aidera!
Je n'ai vu personne répondre correctement à cette question. Je le poste donc ici. Pour que les colonnes s'affichent, vous devez spécifier la ligne suivante.
lvRegAnimals.View = View.Details;
Et puis ajoutez vos colonnes après cela.
lvRegAnimals.Columns.Add("Id", -2, HorizontalAlignment.Left);
lvRegAnimals.Columns.Add("Name", -2, HorizontalAlignment.Left);
lvRegAnimals.Columns.Add("Age", -2, HorizontalAlignment.Left);
J'espère que cela aidera toute autre personne à la recherche de cette réponse à l'avenir.
Vous devez définir la propriété du contrôle:
listView1.View = View.Details;
listView1.View = View.Details;
listView1.Columns.Add("Target No.", 83, HorizontalAlignment.Center);
listView1.Columns.Add(" Range ", 100, HorizontalAlignment.Center);
listView1.Columns.Add(" Azimuth ", 100, HorizontalAlignment.Center);
j'ai aussi eu le même problème .. je fais glisser la colonne vers la gauche .. mais maintenant ok .. alors disons que j'ai 283 * 196 taille de listview ..... Nous avons déclaré dans la colonne largeur -2 pour la largeur automatique .. Pour l'ajustement dans la listview, nous pouvons diviser la largeur de listview en 3 parties (83,100,100) ...