您无法在ListBox中轻松完成此操作.使用Graphics绘制它们并不容易.我建议改用DataGridViewo ListView控件.
结果:

DataGridView:调用DataGridViewImageColumn了一个ColumnType ,可用于显示状态图标.
public void FillDataGridView()
{
//images
var greenImg = Resources.green;
var redImg = Resources.red;
var yellowImg = Resources.yellow;
dataGridView1.Rows.Add(new object[] {"Vland", greenImg});
dataGridView1.Rows.Add(new object[] {"John", yellowImg });
dataGridView1.Rows.Add(new object[] {"Paul", greenImg});
dataGridView1.Rows.Add(new object[] {"George", redImg});
dataGridView1.Rows.Add(new object[] {"Ringo", redImg });
}
Run Code Online (Sandbox Code Playgroud)
如何:在Windows窗体DataGridView控件的单元格中显示图像
ListView:可以添加由text + image组成的项目.如果使用ListView,则需要在表单中添加imageList组件(包含图像)并调用其imageKey值,如示例所示
public void fillListView()
{
listView1.SmallImageList = imageList1;
listView1.Items.Add("BombPenguin", "green");
listView1.Items.Add("Vland", "yellow");
listView1.Items.Add("John", "red");
listView1.Items.Add("Paul", "green");
listView1.Items.Add("Ringo", "red");
}
Run Code Online (Sandbox Code Playgroud)