You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#开发BlackJack游戏如何向List添加项并显示资源文件图片

问题原因

当前实现存在核心错误:你传入的"Resources._2C.png"既不是有效的本地文件路径,也不是嵌入资源的正确访问方式。图片导入项目资源后会被编译为程序集内嵌资源,运行时不会在输出目录生成同名实体文件,直接传路径字符串完全无法被PictureBox识别加载。

修复方案
  • 调整Card类定义,不要用字符串存储图片路径,直接用WinForms原生的Image类型存储卡牌图片对象,省去后续重复加载解析的步骤:
internal class Card
{
    public int Value { get; set; }
    public string Name { get; set; }
    public Image CardImage { get; set; }
    
    public Card(int value, string name, Image cardImage)
    {
        Value = value;
        Name = name;
        CardImage = cardImage;
    }
}
  • 初始化卡牌实例时,不要手写路径字符串,直接通过Visual Studio自动生成的资源强类型类读取嵌入图片。注意导入资源后VS会自动按文件名生成对应属性,_2C.png对应的属性名是_2C,不需要带.png后缀:
private void startButton_Click(object sender, EventArgs e)
{
    // 初始化梅花2
    myListOfCards.Add(new Card(2, "Two of Clubs", Properties.Resources._2C));
    // 剩余51张卡牌按相同规则,匹配对应资源属性添加即可
}
  • 需要显示卡牌时,直接把Card实例的CardImage属性赋值给PictureBox的Image属性即可正常渲染:
// 示例:渲染玩家第一张手牌
playerFirstCardPictureBox.Image = playersHand[0].CardImage;

排查提示:如果写代码时找不到Properties.Resources,先打开项目下的Resources.resx文件,确认所有卡牌图片都已成功导入、资源生成名称和你写的属性名完全一致,没有拼写错误。.NET 6+版本的资源类命名空间和项目默认命名空间保持一致,注意引用即可。

内容的提问来源于stack exchange,提问作者TommyOnIt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.31 00:09:22