我正在以winforms制作一个项目。我有一个在运行时填充的列表框,其中包含列表中的自定义类对象。对于每个对象,我有一个相关的按钮。我希望程序在单击按钮时返回列表框中关联对象的一个属性。我还想在列表框中选择项目。
列表框的人口:
private void UpdateList()
{
listbox.Items.AddRange(Custom_list.ToArray());
}
单击关联按钮时触发的事件:
associatedButton.MouseUp += (sender, eventArgs) =>
{
Button btn = (Button)sender;
for (int j = 0; j < listbox.Items.Count; j++)
{
if (listbox.GetItemText(j) == btn.Tag.ToString())
{
listbox.SelectedItem = j;
}
}
}
此代码的要点是,获取列表中给定对象的MyObject.id属性(这是一个字符串),或者该项目的列表框中显示的文本(这两个是相同的)。还创建了btn.Tag来存储相应对象的字符串id值。 但是listbox.GetItemText(j)(或listbox.Items(j).ToString())似乎没有返回任何值。它不会抛出异常,但只是跳过if结构。 对此有何解决方案?