C#中ListBox.GetItemText传索引返回0问题:如何替代SelectedIndex?
问题解决方法
问题原因
GetItemText方法的参数要求是列表项的对象实例,而非索引值。你直接传入整数b时,方法会将其视为普通对象,调用ToString()返回结果,这就是为什么返回值始终为0(对应整数b的字符串形式)。
解决方法
方法一:通过索引获取项对象后传入GetItemText
不用修改选中状态,直接从列表的Items集合按索引取到对应项,再传给GetItemText:
var targetItem = listBox2.Items[b]; vGame = listBox2.GetItemText(targetItem);
方法二:直接调用项的ToString()(适用于显示文本等于项自身字符串的场景)
如果你的列表项是字符串类型,或者项的ToString()返回值就是显示文本,可直接简化:
vGame = listBox2.Items[b].ToString();
这两种方式都不会触发SelectedIndex变更导致的数据加载逻辑。
内容的提问来源于stack exchange,提问作者Josh
相关产品推荐
相关产品推荐

