使用.NET时,图像未显示在列表视图中

ih99xse1  于 2022-12-20  发布在  .NET
关注(0)|答案(1)|浏览(132)

我能够从这里的示例代码C# .net Windows Forms Listview with image in Detail View使用.NET框架成功地得到这个结果,但相同的代码和表单设置使用. NET6.0不工作,即图像不显示在列表视图中。我尝试了许多建议,直到我意识到,.NET是导致我的问题。
我是否遗漏了一些东西,让.NET在列表视图中显示图像?

public partial class Form1 : Form
{
    List<string> _list = new();
    ImageList serviceLogoList = new ImageList
    {
        ImageSize = new Size(32, 32),
        ColorDepth = ColorDepth.Depth32Bit
    };

    public Form1()
    {
        InitializeComponent();
        initializeListView();

        DirectoryInfo dir = new DirectoryInfo(@"\resources"); //change and get your folder
        foreach (FileInfo file in dir.GetFiles())
        {
            try
            {
                this.serviceLogoList.Images.Add(Image.FromFile(file.FullName));
            }
            catch
            {
                //log error
            }
        }

        foreach (var str in _list)
        {
            ListViewItem item = new ListViewItem();
            item.Text = str;
            item.SubItems.Add("OK");
            item.ImageIndex = 0; //tried 1,2,3,4,5 as well
            listView1.Items.Add(item);
        }
    }
    private void initializeListView()
    {
        _list.Add("Test1");
        _list.Add("Test2");
        _list.Add("Test3");

        listView1.View = View.Details;
        //listView1.LargeImageList = serviceLogoList;
        listView1.SmallImageList = serviceLogoList;
        listView1.Columns.Add("Name", 100);
        listView1.Columns.Add("Status", 100);
    }
}

这是所要求的代码。此代码在选择.NET Framework 4.7.2而不是.NET 6.0(LTS)时有效。此代码是StackOverflow上的帖子提供的,但我目前找不到链接。此代码基于“Windows窗体应用程序(.NET Framework)”工作,但不基于“Windows窗体应用程序”
在表单中添加一个名为listView1的listview控件,其他所有操作都在后面的代码中完成。
第一节第一节第一节第一节第一次

5kgi1eie

5kgi1eie1#

关于这个的更新。看起来我使用的控件来自MaterialSkin(链接将您带到其他人提出的问题)包不支持图像。我将控件换成了WinForm,一切都按预期工作。我创建了一个空白表单,添加了一个名为Listview1的ListView控件,并将视图类型更改为详细信息。我将设计控件的样式以匹配UI的其余部分。

public Form1()
    {
        InitializeComponent();
        ImageList imageListSmall = new ImageList();
        imageListSmall.Images.Add(Bitmap.FromFile("D:\\subtract.png"));
        imageListSmall.Images.Add(Bitmap.FromFile("D:\\add.png"));
        listView1.SmallImageList = imageListSmall;

        listView1.Columns.Add("Item Column", -2, HorizontalAlignment.Left);

        listView1.Items.Clear();

        ListViewItem item1 = new ListViewItem("item1", 0);
        listView1.Items.Add(item1);
        item1 = new ListViewItem("item2", 1);
        listView1.Items.Add(item1);
       

    }

相关问题