0

我正在制作一个纸牌游戏,我创建了 10 张不同的纸牌,我已将图片实现到右侧资源区域的程序中。我的卡片结构如下所示:

 public Form1()
    {
        cards = new PlayCard[10];
        cards[0] = new PlayCard("Harry", 97, 33, 40);
        cards[1] = new PlayCard("Dave", 80, 91, 41);
        cards[2] = new PlayCard("Randle", 90, 13, 45);
        cards[3] = new PlayCard("Zach", 30, 98, 81);
        cards[4] = new PlayCard("Shorty", 30, 89, 99);
        cards[5] = new PlayCard("Matt", 75, 81, 72);
        cards[6] = new PlayCard("Aaron", 89, 82, 80);
        cards[7] = new PlayCard("Ryan", 25, 83, 71);
        cards[8] = new PlayCard("Stephen", 96, 100, 100);
        cards[9] = new PlayCard("David", 90, 37, 70);

        InitializeComponent();
    }

我想知道如何让相应的图片显示确定显示哪张卡

谢谢

4

2 回答 2

2

使用ImageList. 然后,您可以命名每个图像以与您的名称相对应。对 ImageLists 以及如何在运行时和设计时添加图像有很好的介绍

首先添加图像(在运行时显示):

imageList1.Images.Add("pic1", Image.FromFile("c:\\mypic.jpg"));

要从集合中删除图像:

imageList1.Images.RemoveAt(listBox1.SelectedIndex);
imageList1.Images..RemoveByKey("pic1");

要访问图像,请从图像集合中获取图像:

panel1.BackgroundImage = imageList1.Images["David"];

或为您的阵列:

panel1.BackgroundImage = imageList1.Images[cards[i][0]];

我希望这有帮助。


编辑。解决上述不是 OOP 的评论。ImageList您可以将 an 添加ImagePlayCard对象中,而不是使用。还有一个选项可以使用 aDictionary<string, Image>来处理此映射,但同样可以将其解释为非 OOP。

于 2013-05-14T08:47:00.587 回答
0

将图像作为属性添加到您的 PlayCard 类,然后为每个游戏卡分配一个图像(最简单的方法 - 更改您的构造函数)。每个游戏卡都会知道它的图像,因此在您现有的代码中实现它非常容易,无需进行很多修改。

于 2013-05-14T08:48:52.630 回答