2009-04-27 8 views
2

j'ai une classe qui ressemble à ceAjout d'objets de classe personnalisée à listBox en C#

public class Process_Items 
{ 
    String Process_Name; 
    int Process_ID; 
    //String Process_Title; 
    public string ProcessName 
    { 
     get { return Process_Name; } 
     set { this.Process_Name = value; } 
    } 
    public int ProcessID 
    { 
     get { return Process_ID; } 
     set { this.Process_ID = value; } 
    } 
} 

maintenant je veux créer un Process_Items [] Tableau et afficher tous les éléments dans une colonne à plusieurs listbox. Telle que cette première colonne doit avoir le processName et 2nd doit avoir le processID. Comment puis-je y parvenir en C# 2.0?

+0

WinForms, ASP.NET ou WPF? –

Répondre

8

Vous devez utiliser un contrôle ListView et ajoutez deux colonnes (ListBox a seulement une colonne)

Process_Items[] items = new Process_Items[] // Initialize array 

foreach(Process_Items p in items) { 
    listView.Items.Add(p.ProcessName).Subitems.Add(p.ProcessID.ToString()); 
} 
2

Une zone de liste a un seul ListItem (chaîne) affiché à l'utilisateur.

Ainsi, vous pouvez passer outre ToString() comme

public override string ToString() 
{ 
    return string.Format("{0} [ProcID: {1}]", this.Process_Name , this.ProcessID); 
} 

Si cela est pour une application WinForms, jetez un oeil à la commande ListView ou un DataGridView

1

Quel contrôle utilisez-vous pour la liste? Si vous utilisez un ListView, vous pouvez le faire comme ceci (en supposant que exemple est un Process_Items - ce qui est btw un nom étrange pour une classe OMI - par exemple):

listView1.Items.Add(instance.ProcessName).SubItems.Add(instance.ProcessID.ToString()); 
Questions connexes