How do add image to System.Windows.Forms.ListBox?

妖精的绣舞 提交于 2020-01-19 17:01:45

问题


I'm developing chatting program using C# and I manage nickname list using ListBox. But, client have nickname, and state (online, away)

So, in order to manage the state, I want to add image (online - green circle, away - red circle) to ListBox (it is my idea)

How can add image to ListBox? Please help me.

Thanks.


回答1:


You can't do that easily in the ListBox. And drawing them using Graphics is not easy at all. I suggest using a DataGridView o ListView control instead.

Result:

DataGridView: There's a ColumnType called DataGridViewImageColumn that you can use to show your status icon.

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

How to: Display Images in Cells of the Windows Forms DataGridView Control

ListView: can add items composed by text + image. If you use the ListView, you need to add an imageList component to your form (with your images in it) and call their imageKey value like shown in the example

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

How to: Display Icons for the Windows Forms ListView Control




回答2:


It's not directly supported. However, you can draw each item of the list manually using the DrawItem event; this will allow you to include an image for each item, using Graphics.DrawImage.



来源:https://stackoverflow.com/questions/20821143/how-do-add-image-to-system-windows-forms-listbox

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!