【问题标题】:How do add image to System.Windows.Forms.ListBox?如何将图像添加到 System.Windows.Forms.ListBox?
【发布时间】:2021-08-31 05:47:57
【问题描述】:

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

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

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

谢谢。

【问题讨论】:

    标签: c# winforms image listbox add


    【解决方案1】:

    您不能在 ListBox 中轻松做到这一点。使用 Graphics 绘制它们一点也不容易。我建议改用DataGridView o 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 });
    }
    

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

    ListView:可以添加文字+图片组成的项目。如果您使用 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");
    }
    

    How to: Display Icons for the Windows Forms ListView Control

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-11-16
        • 2011-08-07
        • 2011-06-15
        • 2010-09-22
        • 2019-06-12
        • 1970-01-01
        • 2013-04-04
        相关资源
        最近更新 更多