2015-12-07 85 views
0

我有一个名称列表。这些名称链接到一个标签。当我点击标签时,为该标签指定的随机名称被选中。如何让按钮从列表中选择一个随机名

我需要的是当点击一个按钮时,它为每个标签选择一个随机名称。例如

;

我在列表中有5个名字,每个单独的列表链接到一个单独的标签。随机选择一个名称作为标签。当点击一个按钮时,我需要全部10个标签来选择一个随机名称。

希望是有道理的。我在表单上使用Visual Studio 2010和c#。很多谢谢

所以这就是我所拥有的。这是我需要的代码的一部分(不要担心它的内容)。守门员标签被称为“守门员”,我的按钮应该称为“pickTeam”,但点击时显示为“button1_Click”private void button1_Click(object sender, EventArgs e)

我需要它,这样当按钮点击时,每个标签(我可以自己做一次)会选择一个已经给出的随机名称。即;贝戈维奇,德吉亚等等。

我有一个方法为每个位置。这是守门员,一旦我知道我可以为其他位置做到这一点。由于

private void goalkeeper_Click(object sender, EventArgs e) 
     { 
      Random rand = new Random(); 
      List<string> goalkeepers = new List<string>(); 
      goalkeepers.Add("Neuer"); 
      goalkeepers.Add("De Gea"); 
      goalkeepers.Add("Lloris"); 
      goalkeepers.Add("Begovic"); 
      for (int i = 0; i < 4; i++) 
      { 
       int index = rand.Next(0, 4); 
       goalkeeper.Text = goalkeepers[index]; 
      } 
     } 
+1

我猜y我们目前的代码有效?你需要额外的东西/你遇到什么问题? –

+0

你不需要for循环,你可以把List init放在点击按钮之外。对于随机部分,最好使用rand.Next(0,goalkeepers.Length),以便将来如果要添加更多目标保持器,则不需要更改代码。 –

+0

我不需要添加代码,这只是一次使用的东西,但需要它正确哈哈。是的,这个代码目前是链接到一个标签。因此,我的表单上的一个标签在点击时会显示一个随机名称,但是我希望当点击该按钮时,它会为所有位置选择随机播放器 –

回答

0

令您goalkeepers名单由新Guid到获得一个随机的顺序,然后选择第一种:

private void SetLabelText(Label label, List<string> names) 
{ 
    var randomName = names.OrderBy(x => Guid.NewGuid()).FirstOrDefault(); 
    label.Text = randomName; 
} 

你可以称之为为每个标签,例如:

private void SetupLabels() 
{ 
    SetLabelText(label1, goalkeepers); 
    SetLabelText(label2, goalkeepers); 
    SetLabelText(label3, goalkeepers); 
    SetLabelText(label4, goalkeepers); 
    SetLabelText(label5, goalkeepers); 
} 

private void goalkeeper_Click(object sender, EventArgs e) 
{ 
    SetupLabels(); 
} 

但是说实话,你已经有了什么没有太多错误

+0

这样才能让它点击按钮时,所有标签都会从列表中显示一个随机名称?每个标签有5个不同的名称。我有11个标签 –

+0

是的,请参阅我的编辑。只需将每个标签作为参数传递给“SetLabelText”并提供每个标签的名称列表即可。 – DGibbs

+0

我想我明白了。所以我保持我的守门员_像这样的名字? 然后带标签1也许被称为守门员, 标签2是后卫, 标签3是中等等? in goalkeeper_click我只需要'setuplabels' 我在哪里可以输入我希望选择的名字? –