2009-04-27 14 views
2

i eine Klasse, die wie folgt iHinzufügen von benutzerdefinierten Klassenobjekte in C# Listbox

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; } 
    } 
} 

jetzt sieht ein Process_Items [] Array erstellen möchten, und alle Elemente in einer mehrspaltigen Listbox anzuzeigen. Dies bedeutet, dass die erste Spalte den Prozessnamen und die 2. Spalte die Prozess-ID haben muss. Wie kann ich dies in C# 2.0 erreichen?

+0

WinForms, ASP.NET oder WPF? –

Antwort

8

Sie sollten ein Listview-Steuerelement verwenden und zwei Spalten hinzufügen (ListBox hat nur eine Spalte)

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

In einem Listenfeld wird ein einzelnes ListItem (String) für den Benutzer angezeigt.

So könnte man überschreiben ToString() als

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

Wenn dies für eine WinForms-Anwendung ist, haben einen Blick auf die Listview-Steuerelement oder ein Datagridview

1

Welche Steuerung verwenden Sie für die Liste? Wenn Sie einen Listview verwenden, dann können Sie tun, wie folgt (unter der Annahme, dass Instanz ein Process_Items ist - die übrigens ein seltsamer Name für eine Klasse ist IMO - Instanz):

listView1.Items.Add(instance.ProcessName).SubItems.Add(instance.ProcessID.ToString()); 
Verwandte Themen