如何将加载到ListBox中的数组值复制到独立TextBox中
解决ListBox选中项复制到TextBox显示索引而非实际值的问题
嘿,我完全懂你遇到的这个小坑——你现在用SelectedIndex.ToString()拿到的是选中项在ListBox里的位置编号,而不是你想要的实际文本内容(比如Smith)。这很正常,因为SelectedIndex本身就是返回一个整数代表项的索引位置,不是项的内容~
正确的做法分两种情况:
情况1:ListBox直接添加的是字符串项(比如你从数组里逐个Add的字符串)
把你的代码改成这样,用SelectedItem来获取选中的项本身:
// 先判断是否有选中项,避免空引用报错 if (listIstName.SelectedItem != null) { lblemployeeNameTwo.Text = listIstName.SelectedItem.ToString(); }
SelectedItem会返回ListBox中被选中的那个对象,如果你添加的是字符串,直接调用ToString()就能得到你想要的文本内容啦。
情况2:ListBox绑定了自定义对象(比如Employee类的数组)
如果你的ListBox数据源是自定义对象,那需要先把SelectedItem转成对应的对象类型,再取属性值:
if (listIstName.SelectedItem != null) { Employee selectedEmp = (Employee)listIstName.SelectedItem; lblemployeeNameTwo.Text = selectedEmp.Name; // 假设你的对象有Name属性 }
额外小提示
记得加上是否有选中项的判断哦,不然如果用户没选中任何项就触发操作,SelectedItem会是null,直接调用ToString()会抛出空引用异常,影响程序稳定性。
内容的提问来源于stack exchange,提问作者user117983
相关产品推荐
相关产品推荐

