2016-12-11 5 views
0

私は、Windowsアプリケーション用のデッキを作るプロジェクトに取り組んでいます。これまでのところ、私は52枚のカードをすべて保持するリストを作成することができました。それに伴って、各カードのイメージを保存するためにイメージリストが使用されます。私が解決しようとしている問題は、リストに格納されている各要素に対応する各カードのイメージを格納する必要があることです。クラブの
2、クラブの 3、クラブの 4、クラブの 5、 : はこれまでのところ、結果はこのように表示されます。 。 。クラブの ジャック、クラブの 女王、クラブの 王、クラブイメージリストの要素をリストに表示する

の エース以下

は私の作業コードです:

  for (i = 0; i < 4; i++) 
      { 
       suit = i.ToString(); 

       switch (suit) 
       { 
        case "0": 
         suit = "Clubs"; 
         break; 

        case "1": 
         suit = "Diamonds"; 
         break; 

        case "2": 
         suit = "Hearts"; 
         break; 

        case "3": 
         suit = "Spades"; 
         break; 
       } 

       for (k = 0; k < 13; k++) 
       { 
        // face = k.ToString(); 
        face = k.ToString(); 

        switch (face) 
        { 
         case "0": 
          face = "2"; 
          break; 

         case "1": 
          face = "3"; 
          break; 

         case "2": 
          face = "4"; 
          break; 

         case "3": 
          face = "5"; 
          break; 

         case "4": 
          face = "6"; 
          break; 

         case "5": 
          face = "7"; 
          break; 

         case "6": 
          face = "8"; 
          break; 

         case "7": 
          face = "9"; 
          break; 

         case "8": 
          face = "10"; 
          break; 

         case "9": 
          face = "Jack"; 
          break; 

         case "10": 
          face = "Queen"; 
          break; 

         case "11": 
          face = "King"; 
          break; 

         case "12": 
          face = "Ace"; 
          break; 


        } 

        cardDeckList.Add(new PlayingCard(suit, face, imageListCards.Images[counter], 1)); 
        counter++; 
       } 




      } 

      for (int l = 0; l < cardDeckList.Count; l++) 
      { 
       listBoxOutput.Items.Add(cardDeckList[l].ToString()); 

       pictureBox_Card1.Image = cardDeckList[l].CardImage; 
      } 

私の目標は、私が設定して、特定の画像をアップロードしているということですイメージリスト内での注文。したがって、私はスーツ、顔の値、イメージなどの新しく作成された各要素の値をイメージリストのイメージリストに対応して保存したいと思います。

これ以降、イメージリストのようにイメージがどのように格納されているかのイメージが表示されます。さらに、これの下に私の現在の働くWindowsアプリケーションが含まれています。

Windows app
ImageList Elements
ImageList Elements no.2

+0

を標的にしている:Winformsの、WPF、ASPを..? __Always__あなたの質問に正しくタグを付けてください! – TaW

+0

画像はImageListに追加する順番になっています。それらを追加する前にそれらを注文してください! - 名前でアクセスすることもできます: 'int someIndex = imageListCards.Images.Keys.IndexOf [" someImageName "];' – TaW

答えて

0

あなたは、このウェブサイトまたはWindowsアプリケーションです言うことはありません。 は、私は、これはサンプルのWebページであると私はあなたがウェブ独自の

ウェブ のC#(背後にあるコード)

public partial class Default : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 

    } 

    protected void btnload_Click(object sender, EventArgs e) 
    { 
     string[] suit = { "Clubs", "Diamonds", "Hearts", "Spades" }; 
     string face = ""; 
     int counter = 0; 
     List<PlayingCard> cardDeckList = new List<PlayingCard>(); 
     for (int i = 0; i < 4; i++) 
     { 
      for (int k = 0; k < 13; k++) 
      { 
       if (k < 9) 
        face = k.ToString(); 
       else 
       { 
        switch (k) 
        { 
         case 9: 
          face = "Jack"; 
          break; 

         case 10: 
          face = "Queen"; 
          break; 

         case 11: 
          face = "King"; 
          break; 

         case 12: 
          face = "Ace"; 
          break; 
        } 
       } 
       cardDeckList.Add(new PlayingCard(suit[i], face, counter)); 
       counter++; 
      } 
     } 
     gvCards.DataSource = cardDeckList.ToList().OrderBy(c => c.order); 
     gvCards.DataBind(); 
    } 
} 
public class PlayingCard 
{ 
    public string suit { get; set; } 
    public string face { get; set; } 
    public string ImageUrl { get; set; } 

    public int order { get; set; } 
    public PlayingCard(string _suit, string _face, int _order) 
    { 
     suit = _suit; 
     face = _face; 
     //ImageUrl = "Url Of Images in virtual directory" 
     ImageUrl = "~/Images/" + face + "-of-" + suit; 
     order = _order; 
    } 

} 

を作成するために助けを願っていますが、Webアプリケーションを持っている

を考えます マークアップ

<form id="form1" runat="server"> 
    <div> 
     <asp:Button ID="btnload" runat="server" Text="Load" OnClick="btnload_Click" /> 

     <asp:GridView ID="gvCards" runat="server" AutoGenerateColumns="false" > 
      <Columns > 
       <asp:BoundField DataField="suit" HeaderText="suit" /> 
       <asp:BoundField DataField="face" HeaderText="face" /> 
       <asp:TemplateField> 
        <ItemTemplate> 
         <asp:Image ID="imgFace" runat="server" ImageUrl='<%# Bind("ImageUrl") %>' /> 
        </ItemTemplate> 
       </asp:TemplateField> 
      </Columns> 
     </asp:GridView> 
    </div> 
</form> 

のWindowsアプリケーション トランプクラス

public class PlayingCard 
    { 
     public string suit { get; set; } 
     public string face { get; set; } 
     public string ImageUrl { get; set; } 
     public Image pic { get; set; } 
     public int order { get; set; } 
     public PlayingCard(string _suit, string _face, int _order) 
     { 
      suit = _suit; 
      face = _face; 
      ImageUrl = "\\Images\\" + face + "-of-" + suit + ".png"; 
      order = _order; 


      string _ImageUrl = Application.StartupPath + ImageUrl; 
      pic = Image.FromFile(_ImageUrl); 

     } 

    } 

のWindowsアプリケーション ボタンクリック

private void btnLoad_Click(object sender, EventArgs e) 
    { 
     string[] suit = { "Clubs", "Diamonds", "Hearts", "Spades" }; 
     string face = ""; 
     int counter = 0; 
     List<PlayingCard> cardDeckList = new List<PlayingCard>(); 
     for (int i = 0; i < 4; i++) 
     { 
      for (int k = 0; k < 13; k++) 
      { 
       if (k < 9) 
        face = (k + 1).ToString(); 
       else 
       { 
        switch (k) 
        { 
         case 9: 
          face = "Jack"; 
          break; 

         case 10: 
          face = "Queen"; 
          break; 

         case 11: 
          face = "King"; 
          break; 

         case 12: 
          face = "Ace"; 
          break; 
        } 
       } 
       cardDeckList.Add(new PlayingCard(suit[i], face, counter)); 
       counter++; 
      } 
     } 
     //bindGv is a bindingSource 
     //in bindGv->properties->datasource "add project datasource" 
     //in "choose a datasource type" window select "Object" Next 
     //in "select the datasource object" window find the "PlayingCard" class then finish 
     //in gridView datasource select bindGv 
     bindGv.DataSource = cardDeckList.ToList().OrderBy(c => c.order); 
    } 

のWindowsアプリケーション
デザイナー ​​

のWindowsアプリケーション
あなたは何を出力 output

+0

こんにちは、実際このプロジェクトは、C#のWindowsアプリケーション用です。 –

+0

こんにちは、もう一度、<あなたとウェブソリューション> –

関連する問題