我一直想弄清楚为什么我的imageList在我的表单运行时不会渲染我的图像,我使用以下代码...
public void renderImageList()
{
int selection = cboSelectedLeague.SelectedIndex;
League whichLeague = (League)frmMainMenu.allLeagues[selection];
string index = cboSelectedLeague.SelectedItem.ToString();
if (whichLeague.getLeagueName() == index)
{
foreach (Team t in allTeams)
{
Image teamIcon = Image.FromFile(@"../logos/" + t.getTeamLogo());
imgLstIcons.Images.Add(teamIcon);
}
}
else
{
MessageBox.Show("Something went wrong..." + whichLeague.getLeagueName() + " " + index + ".");
}
}
当用户更改我的组合框的索引时会触发该方法,我知道程序获取了正确的路径,因为我使用了一个消息框来显示每个路径返回的路径,如我所料。
我是否遗漏了代码中的内容以将图像绘制到框中?
亚历。
答案 0 :(得分:2)
将所有图像添加到ImageList后,您还应将所有项目添加到ListView中:
for (int j = 0; j < imgLstIcons.Images.Count; j++)
{
ListViewItem item = new ListViewItem();
item.ImageIndex = j;
lstView.Items.Add(item);
}
来源:http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/876b6517-7306-44b0-88df-caebf3b1c10f/
您还可以使用FlowLayoutPanel并动态创建PictureBox元素,每个Image一个元素,而根本不使用ImageLists和ListViews。这取决于您想要的UI类型。