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

前端 未结 2 1987
闹比i
闹比i 2020-12-11 20:04

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 st

相关标签:
2条回答
  • 2020-12-11 20:16

    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:

    enter image description here

    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

    0 讨论(0)
  • 2020-12-11 20:20

    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.

    0 讨论(0)
提交回复
热议问题