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を追加できます。このマッピングを処理するために a を使用するオプションもありますが、これも非 OOP として解釈される可能性があります。ImagePlayCardDictionary<string, Image>

于 2013-05-14T08:47:00.587 に答える
0

画像をプロパティとして PlayCard クラスに追加し、各プレイカードに画像を割り当てます (最も簡単な方法 - コンストラクターを変更します)。各プレイカードはそのイメージを認識しているため、多くの変更を加えることなく、既存のコードに簡単に実装できます。

于 2013-05-14T08:48:52.630 に答える