2015-12-07 116 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' 我在哪裏可以輸入我希望選擇的名字? –