有个C#问题请教各路高手,如何用Random函数随机选择combox中的选项,在下是菜鸟一个,谢谢。

以下是一个例子,如何点击一键生成,在下拉列表中随机选出一个选项,并显示在文本框和下拉列表中。因为选项中是一个string类型的数组,怎样结合Random函数应用!希望能详细解答,谢谢!

这个不复杂,但是因为选项较少加上计算机运算速度快,很容易生成重复的随机数,你也可以再加一个判断来生成12个完全不同的随机数,但那似乎就不是很“随机”了。废话不多说,写代码,生成数组那个就简写了,看你添加的代码比较繁琐,主要写一下添加下拉项和随机选择项目:
string[] results=new string[]{......};
foreach(Control control in this.Controls) //遍历窗体上的控件
if(control is ComboBox) //如果是ComboBox控件
{
for(int i=0;i<results.Length;i++) //循环添加下拉项
((ComboBox)control).Items.Add(results[i]);
((ComboBox)control).SelectedIndex=(new Random().Next(0,13)); //随机选择项目
}
希望对你有帮助,还有疑问请追问或是Hi追问

你的写法很方便,学习了。但是我还没到这个层次,呵呵!自己查看了资料现在程序基本都写出来了,还再想问一下,就是说点击一键生成时,下拉项如果是选择了随机生成就执行随机选择;如果是选择其他项,RichTextBOX里就显示自己选的这个下拉选项;比如第四名、第五名、第六名分别选择了(金牛座、山羊座、水瓶座)其他都是随机选择;就是说想加一个判断,下拉项中是否选择了随机生成;该怎么写呢?感谢,感谢!

追答

还是可以象上面那样遍历ComboBox,因为你添加的“随机选择”这个项是第13项,所以你只需要判断ComboBox.SelectedIndex是否等于12就可以了(也可以判断ComboBox.Text),希望对你有帮助

追问

感谢你的耐心解答!还有个小问题就是,为什么我在控件以外,窗体的空白地方点击也会执行代码的呢?下拉列表会自动有选项,而且选项重复着越来越多。

追答

你添加下拉项的代码没有写在按钮事件里面的原因吧?是不是写到了别的事件里面去了?至于重复项,就是你执行了多次添加,这个可以在添加的代码前先清除一下就可以了,按理说在这个界面里你只需要在窗体的Load事件里面添加一次就是了,其他应该都是选项切换操作,没有添加操作了吧?!

追问

谢谢提示!不过要用random生成不重复的选项,这步比较困难。

追答

其实也不困难,说个思路,定义一个List,第一次随机后将随机数添加到里面,第二次随机后判断一下List是否已经包含这个值,没有就可以用,然后也添加到列表里面,有就再随机一次,这样应该是可以的,没试过

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-04-30
//Random用于返回一个位于0和1之间的随机数
Random rand = new Random();
//floor用于返回一个小于或等于指定数字的最大整数
int a = ((int)Math.Floor(rand.NextDouble() * (指定的范围的数值- 1)) + 1);
这里的a就可以作为你的combbox的当前选择项的索引,如:
combbox1.selectindex=a;

有个C#问题请教各路高手,如何用Random函数随机选择combox中的选项,在...
string[] results=new string[]{...};foreach(Control control in this.Controls) \/\/遍历窗体上的控件 if(control is ComboBox) \/\/如果是ComboBox控件 { for(int i=0;i<results.Length;i++) \/\/循环添加下拉项 ((ComboBox)control).Items.Add(results[i]);((ComboBox)control).Sel...

...如何根据一个string类型字段 设置combox的选择项
comboBox1.DisplayMember = "显示的字段";comboBox1.ValueMember = "值的字段";设置选择项直接:comboBox1.SelectedItem = "字符串";就可以 也可以用FindString来查找对应字符串的项,也可以用SelectValue来设置对应项,都是一样的。

C# combox 设置显示下拉菜单的第一项,如图。还有下拉选项的索引怎么回事...
1.、设置下拉框属性为:其中DropDownList属性只能从下拉框已有的内容进行选择,DropDown为可选可输入。2、对下拉框进行初始化为:294行表示默认的下拉框选项。3、在下拉框事件中添加事件:在函数中判断当前的选中选项。

...两个combox的关联问题,一个省的,一个市的,combox1选择省的时候,combo...
} comboBox1.SelectedIndex = 0;\/\/默认项是“请选择”(在控件的属性里面添加“请选择”)} } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e){ comboBox2.Items.Clear();\/\/在显示新数据前先把comboBox原有的数据清空 String id = comboBox1.SelectedIndex.ToString();\/\/...

C#中如何用Combox做一个颜色选择框
private void Form1_Load(object sender, EventArgs e){ this.comboBox1.Items.Add("蓝色");this.comboBox1.Items.Add("红色");this.comboBox1.Items.Add("黄色");} private void comboBox1_SelectedIndexChanged(object sender, EventArgs e){ if (comboBox1.Text == "蓝色"){ this.label1....

相似回答