从组合框中选择随机记录

时间:2011-04-28 12:56:09

标签: c#-4.0

如何从组合框中选择随机项,而不选择组合框中已有的项。

3 个答案:

答案 0 :(得分:1)

我猜你想要这样的东西:

Random random = new Random();
int newIndex = -1;

do {
    newIndex = random.Next(comboBox.Items.Count);
} while (newIndex == comobBox.SelectedIndex && comboBox.Items.Count > 1);

comobBox.SelectedIndex = random.Next(comboBox.Items.Count);

答案 1 :(得分:0)

您应该使用Random类来获取0和组合框中最大项目数之间的随机数。你应该反复得到这个数字,直到得到一个与组合框中已经选择的数字不匹配的数字,如下所示:

Random random = new Random();
int newSelectedIndex = comboBox.SelectedIndex;
while (newSelectedIndex == comboBox.SelectedIndex) {
    newSelectedIndex = random.Next(0, comboBox.Items.Count);
}
comboBox.SelectedIndex = newSelectedIndex;
// Item
// comboBox.Items[newSelectedIndex];

这可能不适用于C / P,因为我从头顶编写并且没有IDE可以立即进行测试,但我希望你明白这一点。

重要:如果您只有1个项目也被选中,这可能会陷入无休止的循环......

答案 2 :(得分:0)

基本上组合框有字符串中的项目,所以如果你能描述一些清楚,那么我们可能会帮助更多,无论如何这里是示例代码  你可以做到吗

ComboBox b = new ComboBox();
Random rt = new Random();
string myText = "";
myText = b.Items[rt.Next(0, b.Items.Count - 1)].ToString();