我想知道如何在列表视图子项目中添加图片。
我正在使用此代码在子项目中显示文字。
double Text = "2452";
ListViewItem lItem = new ListViewItem();
lItem.SubItems.Add(Text.ToString());
我想做这样的事情
ListViewItem lItem = new ListViewItem();
lItem.SubItems.Add(Text.ToString() + "C:\\image.png");
提前致谢。
答案 0 :(得分:9)
private void ListView1_DrawColumnHeader(object sender, System.Windows.Forms.DrawListViewColumnHeaderEventArgs e) {
e.DrawDefault = true;
}
private void ListView1_DrawSubItem(object sender, System.Windows.Forms.DrawListViewSubItemEventArgs e) {
if (!(e.Item.SubItems(0) == e.SubItem)) {
e.DrawDefault = false;
e.DrawBackground();
e.Graphics.DrawImage(My.Resources.Image1, e.SubItem.Bounds.Location);
e.Graphics.DrawString(e.SubItem.Text, e.SubItem.Font, new SolidBrush(e.SubItem.ForeColor), (e.SubItem.Bounds.Location.X + My.Resources.Image1.Width), e.SubItem.Bounds.Location.Y);
}
else {
e.DrawDefault = true;
}
}
答案 1 :(得分:3)
ListView不支持此功能。
我找到了另一个答案,建议你用DataGridView切换它。
How can I set an icon for a ListViewSubItem?
当然,如果你愿意的话,你可以自定义绘制ListView,但我必须说事情会变得非常复杂。
答案 2 :(得分:-2)
您可以通过为图像实现自己的HttpHandler来实现此目的。这是一个实现IHttpHandler接口的.ashx文件。
因此,如果您构建了一个名为ImageHandler的文件,您可以在ListView中以声明方式使用它,如下所示:
<asp:ListView
ID="ImageListView"
runat="server"
DataKeyNames="Id">
<ItemTemplate>
<img id="img1" src='<%#"~/ImageHandler.ashx?Id=" + Eval("Id") %>' />
</ItemTemplate>
</asp:ListView>