我一直在尋找一個解決方案,但還沒有遇到過,但我不太擅長用c#隨機化。隨機控制能見度(asp.net)
我有三個asp.net控件,我希望在任何時候都可以看到其中一個控件。
該控制可以是這樣的
面板1
面板2
面板3
所以我想所有這些控制將被設置爲可見=默認爲'false'。然後randomize方法會選擇其中一個控件,並使其可見='true'。
我認爲這裏最難的部分是將控件放入數組中以隨機化?再次,我不知道如何做到這一點,所以任何幫助將是偉大的。
預先感謝您。
我一直在尋找一個解決方案,但還沒有遇到過,但我不太擅長用c#隨機化。隨機控制能見度(asp.net)
我有三個asp.net控件,我希望在任何時候都可以看到其中一個控件。
該控制可以是這樣的
面板1
面板2
面板3
所以我想所有這些控制將被設置爲可見=默認爲'false'。然後randomize方法會選擇其中一個控件,並使其可見='true'。
我認爲這裏最難的部分是將控件放入數組中以隨機化?再次,我不知道如何做到這一點,所以任何幫助將是偉大的。
預先感謝您。
Random rnd = new Random();
var visiblePanel = rnd.Next(1, 4);
switch (visiblePanel) {
case 1:
Panel1.Visible = true;
Panel2.Visible = false;
Panel3.Visible = false;
break;
case 2:
Panel1.Visible = false;
Panel2.Visible = true;
Panel3.Visible = false;
break;
case 3:
Panel1.Visible = false;
Panel2.Visible = false;
Panel3.Visible = true;
break;
}
如何:
Panel[] array1 = new Panel[3];
array1[0] = panel1;
array1[1] = panel2;
array1[2] = panel3;
foreach(Panel p in array1) {
p.Visible = False;
}
Random rand = new Random();
int toshow = rand.next(0, 3);
array1[toshow].Visible = true;
這是從我的頭conveiced沒有任何IDE支持,如果它工作正常。爲random
類名可能是錯誤的(是不是在數學命名空間?)
有一天,所有的面板是可見的) –
@TimSchmelter我聽說你需要做的rand.next(0,最高+1)。我曾經嘗試過,我認爲我不能讓它達到最高的數字......我也不這麼認爲;它會去EXCEPTION:陣列指數超出範圍:D – sinni800
我想說的是,你只是使面板可見和不可見。 –
這段代碼就是我要找的。我只是在尋找快速解決方案,但我還需要了解更多關於隨機化的知識,因爲它是我編碼知識中的一個薄弱環節。謝謝你的代碼和你的幫助蒂姆。 – tmutton