我一直在寻找一个解决方案,但还没有遇到过,但我不太擅长用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