Supponendo WinForms, questo è quello che vorrei fare:
Inizia facendo una classe per contenere l'elemento da aggiungere alla casella di riepilogo.
public class MyListBoxItem {
public MyListBoxItem(Color c, string m) {
ItemColor = c;
Message = m;
}
public Color ItemColor { get; set; }
public string Message { get; set; }
}
aggiungere elementi alla tua casella di riepilogo utilizzando questo codice:
listBox1.Items.Add(new MyListBoxItem(Colors.Green, "Validated data successfully"));
listBox1.Items.Add(new MyListBoxItem(Colors.Red, "Failed to validate data"));
Nelle proprietà del ListBox, impostare DrawMode a OwnerDrawFixed, e creare un gestore di eventi per l'evento DrawItem. Questo ti permette di disegnare ogni oggetto come preferisci.
Nella DrawItem evento:
private void listBox1_DrawItem(object sender, DrawItemEventArgs e)
{
MyListBoxItem item = listBox1.Items[e.Index] as MyListBoxItem; // Get the current item and cast it to MyListBoxItem
if (item != null)
{
e.Graphics.DrawString(// Draw the appropriate text in the ListBox
item.Message, // The message linked to the item
listBox1.Font, // Take the font from the listbox
new SolidBrush(item.ItemColor), // Set the color
0, // X pixel coordinate
e.Index * listBox1.ItemHeight // Y pixel coordinate. Multiply the index by the ItemHeight defined in the listbox.
);
}
else
{
// The item isn't a MyListBoxItem, do something about it
}
}
Ci sono alcune limitazioni - il principale è che avresti bisogno di scrivere il proprio gestore di clic e ridisegnare gli elementi adeguati per renderli risultano selezionati, a partire da Windows ha vinto farlo nella modalità OwnerDraw. Tuttavia, se questo è solo inteso come un log delle cose che accadono nella tua applicazione, potresti non interessarti agli oggetti che appaiono selezionabili.
Per scorrere fino all'ultima voce provare
listBox1.TopIndex = listBox1.Items.Count - 1;
Hai dimenticato di chiedere in realtà una domanda * *. – jv42
1. Passa attraverso le tue domande e le risposte che ti sembrano corrette o utili. 2) specificare la domanda e la tecnologia (WinForms, WPF ...) – Tigran
E hai dimenticato di menzionare WinForms/WPF/WebForms/... –