我能够从这里的示例代码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控件,其他所有操作都在后面的代码中完成。
第一节第一节第一节第一节第一次
1条答案
按热度按时间5kgi1eie1#
关于这个的更新。看起来我使用的控件来自MaterialSkin(链接将您带到其他人提出的问题)包不支持图像。我将控件换成了WinForm,一切都按预期工作。我创建了一个空白表单,添加了一个名为Listview1的ListView控件,并将视图类型更改为详细信息。我将设计控件的样式以匹配UI的其余部分。