Как добавить изображение в listview.subitem - PullRequest
2 голосов
/ 03 ноября 2011

Я хочу знать, как добавить изображение в подпункте представления списка.

Я использую этот код для отображения текста в подпункте.

 double Text = "2452";
 ListViewItem lItem = new ListViewItem();
 lItem.SubItems.Add(Text.ToString());

Я хочу что-то сделатькак это

 ListViewItem lItem = new ListViewItem();
 lItem.SubItems.Add(Text.ToString() + "C:\\image.png");

Заранее спасибо.

Ответы [ 3 ]

9 голосов
/ 03 ноября 2011
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;
    }
}
3 голосов
/ 03 ноября 2011

ListView не поддерживает это.

Я нашел другой ответ, предлагая переключить его с помощью DataGridView.

Как установить значок для ListViewSubItem?

Конечно, вы можете, если хотите, сделать пользовательскую роспись ListView, но я должен сказать, что все будет очень сложно.

0 голосов
/ 03 ноября 2011

Вы можете сделать это, внедрив свой собственный HttpHandler для изображения.Это файл .ashx, который реализует интерфейс IHttpHandler.

Таким образом, если вы создали один из них с именем ImageHandler, вы можете декларативно использовать его в ListView, что-то вроде этого:

<asp:ListView 
     ID="ImageListView" 
     runat="server"
     DataKeyNames="Id">
        <ItemTemplate>        
            <img id="img1" src='<%#"~/ImageHandler.ashx?Id=" + Eval("Id") %>' />
        </ItemTemplate>
</asp:ListView>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...