2012-12-18 53 views
1

我有4個按鈕btn1btn2btn3btn4隨意改變按鈕名稱

q1 = from tAns in db.Questions where tAns.idQuestion == x select tAns; 
q2 = from fAns1 in db.Questions where fAns1.idQuestion == x select fAns1; 
q3 = from fAns2 in db.Questions where fAns2.idQuestion == x select fAns2; 
q4 = from fAns3 in db.Questions where fAns3.idQuestion == x select fAns3; 

我需要一種方式,它隨機改變按鈕上的文字... 可能的輸出:

第一次

btn1.Text = q2.ToString(); 
btn2.Text = q4.ToString(); 
btn3.Text = q3.ToString(); 
btn4.Text = q1.ToString(); 

第二次

btn1.Text = q1.ToString(); 
btn2.Text = q3.ToString(); 
btn3.Text = q2.ToString(); 
btn4.Text = q4.ToString(); 

等等

回答

2

我猜你正在創建某種形式的測驗的應用程序,所以你需要有隻能夠選擇一個隨機回答一次。不要從數組中選擇一個字符串,只需將所有字符串放入一個數組中並對數組進行混洗即可。洗牌的快速簡單的方法是使用Fisher-Yates Shuffle

然後遍歷for循環中的按鈕,並將值分配給您的按鈕。 (你需要添加錯誤檢查)。

for(int i = 0; i < myShuffledArray.Count(); i++) 
    myButtonsCollection[i].Text = myShuffledArray[i]; 
+0

謝謝你正是我需要的東西 – a1204773

+0

不客氣:) – keyboardP