C#ImageList不会显示图像

时间:2013-04-09 16:46:22

标签: c# winforms

我一直想弄清楚为什么我的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 + ".");
        }

    }

当用户更改我的组合框的索引时会触发该方法,我知道程序获取了正确的路径,因为我使用了一个消息框来显示每个路径返回的路径,如我所料。

我是否遗漏了代码中的内容以将图像绘制到框中?

亚历。

1 个答案:

答案 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类型。