listBox2内容:
0:第一个产品
1:ProductAgain
2:另一个产品
3:确定最终产品
当 listBox2 上的选定索引已更改时,我正在尝试做的是让它使我的 int“DBID”成为“:”之前数字的值。
这是我的尝试:
private void listBox2_SelectedIndexChanged(object sender, EventArgs e)
{
if (listBox2.SelectedIndex == -1)
{
return;
}
int DBID;
DBID = Convert.ToInt32(listBox3.SelectedValue.ToString().Split(":"[0]));
ShowProduct(DBID);
}
非常感谢任何帮助:)
谢谢大家
编辑 - 对不起,是的,我真的试过了:
DBID = Convert.ToInt32(listBox3.SelectedValue.ToString().Split(':')[0]);
但我收到以下错误:
- string.Split(params char[])' 的最佳重载方法匹配有一些无效参数
- 参数 1:无法从“string”转换为“char[]
编辑 #2 -
使用时:
DBID = Convert.ToInt32(listBox3.SelectedValue.ToString().Split(':')[0]);
运行应用程序并单击不同的列表框项目后,我遇到了这个异常:
NullReferenceException 未处理。你调用的对象是空的。
非常感谢到目前为止所有的帮助!
最佳答案
尝试改变:
DBID = Convert.ToInt32(listBox3.SelectedValue.ToString().Split(":"[0]));
收件人:
DBID = Convert.ToInt32(listBox3.SelectedValue.ToString().Split(':')[0]);
更新
试试这个。它明确地添加了一个新的字符:
DBID = Convert.ToInt32(listBox3.SelectedValue.ToString().Split(new char[] { ':' })[0]);
关于ListBox 中的 C# Split(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5176891/