【发布时间】:2021-08-31 05:47:57
【问题描述】:
我正在使用 C# 开发聊天程序,并使用 ListBox 管理昵称列表。但是,客户有昵称和状态(在线,离开)
所以,为了管理状态,我想将图像(在线-绿色圆圈,离开-红色圆圈)添加到ListBox(这是我的想法)
如何将图像添加到 ListBox?请帮帮我。
谢谢。
【问题讨论】:
标签: c# winforms image listbox add
我正在使用 C# 开发聊天程序,并使用 ListBox 管理昵称列表。但是,客户有昵称和状态(在线,离开)
所以,为了管理状态,我想将图像(在线-绿色圆圈,离开-红色圆圈)添加到ListBox(这是我的想法)
如何将图像添加到 ListBox?请帮帮我。
谢谢。
【问题讨论】:
标签: c# winforms image listbox add
您不能在 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
【讨论】:
不直接支持。但是,您可以使用DrawItem 事件手动绘制列表中的每个项目;这将允许您使用 Graphics.DrawImage 为每个项目添加一张图片。
【讨论】: