public static bool[] chosen = new bool[27];
private void pictureBoxTopLeft3_Click(object sender, EventArgs e)
{
n = 18;
cardSelect();
highlightCards();
} // There are many of these.
public static void cardSelect()
{
if (chosen[n] == false)
{
chosen[n] = true;
}
else if (chosen[n] == true)
{
chosen[n] = false;
}
}
有多个图片框。单击图片框后,在此示例中图片框为“pictureBoxLeft3”,它运行“cardSelect”。这会在“已选择”数组中将该图片框设置为true。如果再次单击,则将其设置为false。
共有20个图片框。我怎样才能这样做,所以在“选择”的数组中一次只能将其中的10个设置为true。谢谢!
答案 0 :(得分:0)
您可以拥有一个全局变量selectedCount
,每当用户选择一张图片时,您将selectedCount
增加1.如果selectedCount
< 10位用户可以选择更多图片。
答案 1 :(得分:0)
您可以存储状态或动态计算。
存储状态:
static int chosenCount = 0;
public static void cardSelect()
{
if (chosen[n] == false)
{
if (chosenCount < 10)
{
chosen[n] = true;
chosenCount++;
}
// else show a message maybe?
}
else if (chosen[n] == true)
{
chosen[n] = false;
chosenCount--;
}
}
计算:
using System.Linq;
public static void cardSelect()
{
if (chosen[n] == false)
{
if (chosen.Count(c => c) < 10)
{
chosen[n] = true;
}
}
else if (chosen[n] == true)
{
chosen[n] = false;
}
}
答案 2 :(得分:0)
您可以使用linq
尝试这种方式public static bool[] chosen = new bool[27];
public static void cardSelect()
{
if (chosen[n] == false && chosen.Count(a => a == true) < 10)
{
chosen[n] = true;
}
else if (chosen[n] == true)
{
chosen[n] = false;
}
}