C#在列表中添加与文本框中的文本同名的资源(以及如何添加两次或三次)

本文关键字:文本 添加 何添加 三次 两次 资源 列表 | 更新日期: 2023-09-27 18:09:47

我需要帮助,通过使用textBox.text作为资源名称,在图像列表中添加资源图像。

例如:

List<Image> deckCards1 = new List<Image>();
if textBox1.text = "Iknowyou"
deckCards1.Add(Booster_pack_2.Properties.Resources.Iknowyou);

但我需要textBox的文本是可变的,这样我就可以在其中写任何文本(x(,程序将使用名称为(x(的资源。所以我不需要"如果"(我使用400个图像…太长了,无法为每个图像写入…(。

其他问题;是否可以将资源中具有相同名称的同一图像添加到图像列表中两次或三次,作为不同图像的第二个或第三个图像计数?

此外,我还有一个问题。如果你能帮我摆脱它…

Random random = new Random();
pictureBox1.Image = deckCards1[random.Next(0, deckCards1.Count - 1)];
pictureBox2.Image = deckCards1[random.Next(0, deckCards1.Count - 1)];

如何将pictureBox上显示的图像从图像列表中删除(上下文中的deckCards1(,以便只能在其他pictureBox中获取其他图像?

C#在列表中添加与文本框中的文本同名的资源(以及如何添加两次或三次)

下次发布时,我建议您提出两个单独的问题。

  • 我建议你用字典(http://msdn.microsoft.com/it-it/library/xfhwa508(v=vs.110(.aspx(或包含要测试的所有资源的List<string>,然后使用方法List.Contains(http://msdn.microsoft.com/it-it/library/bhkz42b3(v=vs.110(.aspx(检查在TextBox中输入的字符串是否存在于List/Dictionary
  • 您可以这样做,而不是直接使用随机值:

    Random random = new Random();
    int index = random.Next(0, deckCards1.Count - 1); 
    pictureBox1.Image = deckCards1[index]; 
    deckCards1.RemoveAt(index); 
    //...
    

使用索引首先关联图像,然后通过List.RemoveAt方法将其从列表中删除(http://msdn.microsoft.com/en-us/library/5cw9x18z(v=vs.110(.aspx(