【问题标题】:How to get the first value from the listbox如何从列表框中获取第一个值
【发布时间】:2016-11-26 19:36:18
【问题描述】:

我有一个列表框,用户在其中生成了一个随机数列表,我试图将列表框中的第一个值输出到标签文本。但是,似乎只是在输出一个随机数。

while (lstHoldValue.Items.Count < MAX_ITEMS)
{
    int value = rnd.Next(1 + 100);//ranges from 0 - 100
    if (!lstHoldValue.Items.Contains(value))
        lstHoldValue.Items.Add(value);
}
int d = (Convert.ToInt32(lstHoldValue.Items[0]));
label11.Text = d.ToString(); 

【问题讨论】:

  • 您正在显示第一个项目,但是第一个项目是一个介于 1 和 100 之间的随机整数,因为您正在为每个项目生成一个新值。顺便说一句,使用Next方法的正确方法是:rnd.Next(1, 101)
  • mynamea sas 不知道以太? ;-)
  • 你希望标签的内容是什么?
  • @VisualVincent rnd.Next(1 + 100) 是完美的语法,完全有可能/很好只给出maxValue 的参数,尽管您可能会更多地看到它为rnd.Next(101)
  • 您的代码效率极低。 while 循环可能会重复数千次,只是为了用 100 个唯一的随机数填充列表。

标签: c# winforms listbox


【解决方案1】:

您需要先将项目转换为字符串。你的代码应该是这样的:

int d = (Convert.ToInt32(lstHoldValue.Items[0].ToString()));
label11.Text = d.ToString(); 

已编辑:

我认为@Visual Vincent 是对的。我在这里犯了一个错误:)。没有它,您的代码应该可以工作。 ToString 方法不是必需的。

int d = (Convert.ToInt32(lstHoldValue.Items[0]));
Text = d.ToString();

【讨论】:

  • 非常感谢您的回答!
  • 什么?我现在脑子里一片空白……这怎么行?应该没什么区别...
  • 我必须用他的代码来测试一下……有些不对劲。
  • 我认为你是对的@VisualVincent 它根本没有任何区别。
  • OP 还需要对数组(或列表)进行洗牌,而不是尝试用随机数填充列表。
猜你喜欢
  • 2013-09-03
  • 1970-01-01
  • 2020-04-08
  • 2022-07-05
  • 1970-01-01
  • 2019-12-21
  • 2019-02-22
  • 2022-10-03
  • 1970-01-01
相关资源
最近更新 更多