如何将图像添加到System.Windows.Forms.ListBox?

Bom*_*uin 3 c# listbox image add winforms

我正在使用C#开发聊天程序,我使用ListBox管理昵称列表.但是,客户有昵称和州(在线,离开)

所以,为了管理状态,我想在ListBox中添加图像(在线 - 绿色圆圈,远离红色圆圈)(这是我的想法)

如何将图像添加到ListBox?请帮我.

谢谢.

Vla*_*and 8

您无法在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)

如何:显示Windows窗体ListView控件的图标


Tho*_*que 2

它不受直接支持。但是,您可以使用事件手动绘制列表中的每个项目DrawItem;这将允许您使用 为每个项目包含一个图像Graphics.DrawImage