C# 将位图资源添加到列表中
我正在做一个纸牌游戏,我的资源中有52个位图(所有的纸牌)。因为它现在在处理2张卡时起作用:C# 将位图资源添加到列表中,c#,list,bitmap,resources,C#,List,Bitmap,Resources,我正在做一个纸牌游戏,我的资源中有52个位图(所有的纸牌)。因为它现在在处理2张卡时起作用: public void GiveTwoRandomCardsFromCardsList() { Random random = new Random(); System.Threading.Thread.Sleep(100); int slumptal = random.Next(0, 52); card1 = Cards[slu
public void GiveTwoRandomCardsFromCardsList()
{
Random random = new Random();
System.Threading.Thread.Sleep(100);
int slumptal = random.Next(0, 52);
card1 = Cards[slumptal];
bool flag = false;
while (!flag)
{
System.Threading.Thread.Sleep(100);
int slumptal2 = random.Next(0, 52);
if (slumptal != slumptal2)
{
card2 = Cards[slumptal2];
flag = true;
}
}
}
它所做的是从字符串列表中给2个字符串赋值。该列表包含52个字符串h2、h3、h4、h5等。现在,如果我希望显示某张卡的图像,我有以下长开关:
switch (whatIsTheFirstCard)
{
//Hearts
case "h2":
Card1Picture.Image = Resource1.h2;
break;
case "h3":
Card1Picture.Image = Resource1.h3;
break;
case "h4":
Card1Picture.Image = Resource1.h4;
break;
等等,所有的牌。有没有办法将图像直接添加到列表中,然后直接调用该列表?现在的方式要求我复制并粘贴我希望显示的每张卡的开关。不用说,我宁愿有一个可以保存所有位图卡的列表
private void FlopButton_Click(object sender, EventArgs e)
{
theCards.DealTheFlop();
FlopCard1.Image = thebitmapgoeshere;
}
我不知道向列表中添加位图然后从列表中调用位图的语法。我会使用字典。您可以使用创建字典
Dictionary<string, Bitmap> myCards = new Dictionary<string, Bitmap>();
最后,您可以使用:
myControl.Image = myCards["h2"];
我会用字典。您可以使用创建字典
Dictionary<string, Bitmap> myCards = new Dictionary<string, Bitmap>();
最后,您可以使用:
myControl.Image = myCards["h2"];
我会用字典。您可以使用创建字典
Dictionary<string, Bitmap> myCards = new Dictionary<string, Bitmap>();
最后,您可以使用:
myControl.Image = myCards["h2"];
我会用字典。您可以使用创建字典
Dictionary<string, Bitmap> myCards = new Dictionary<string, Bitmap>();
最后,您可以使用:
myControl.Image = myCards["h2"];
如果代码中的卡与资源中的卡使用完全相同的标识符,则可以直接通过资源管理器获得相应的资源,即
FlopCard1.Image = (Bitmap)Resources.ResourceManager.GetObject("h4", Resources.Culture);
在内部,生成的代码也正是这样做的
这样,您就不需要单独的列表,甚至可以轻松地为不同的区域性指定不同的卡集。如果在代码中为卡使用与在资源中完全相同的标识符,您可以通过资源管理器直接获得适当的资源,即
FlopCard1.Image = (Bitmap)Resources.ResourceManager.GetObject("h4", Resources.Culture);
在内部,生成的代码也正是这样做的
这样,您就不需要单独的列表,甚至可以轻松地为不同的区域性指定不同的卡集。如果在代码中为卡使用与在资源中完全相同的标识符,您可以通过资源管理器直接获得适当的资源,即
FlopCard1.Image = (Bitmap)Resources.ResourceManager.GetObject("h4", Resources.Culture);
在内部,生成的代码也正是这样做的
这样,您就不需要单独的列表,甚至可以轻松地为不同的区域性指定不同的卡集。如果在代码中为卡使用与在资源中完全相同的标识符,您可以通过资源管理器直接获得适当的资源,即
FlopCard1.Image = (Bitmap)Resources.ResourceManager.GetObject("h4", Resources.Culture);
在内部,生成的代码也正是这样做的
这样,您就不需要单独的列表,甚至可以轻松地为不同的区域性指定不同的卡组。使用以下方法:
Card1Picture.Image = (Image)Resource1.ResourceManager.GetObject("h1");
编辑:
抱歉,我没有看到Georg的答案:/使用此选项:
Card1Picture.Image = (Image)Resource1.ResourceManager.GetObject("h1");
编辑:
抱歉,我没有看到Georg的答案:/使用此选项:
Card1Picture.Image = (Image)Resource1.ResourceManager.GetObject("h1");
编辑:
抱歉,我没有看到Georg的答案:/使用此选项:
Card1Picture.Image = (Image)Resource1.ResourceManager.GetObject("h1");
编辑:
对不起,我没有看到乔治的回答://太好了!这让事情变得容易多了。每天学点新东西,嗯?谢谢伟大的这让事情变得容易多了。每天学点新东西,嗯?谢谢伟大的这让事情变得容易多了。每天学点新东西,嗯?谢谢伟大的这让事情变得容易多了。每天学点新东西,嗯?谢谢