gpt4 book ai didi

c# - 为 (CheckedListBox).Items.Add() 使用自定义对象

转载 作者:太空狗 更新时间:2023-10-30 01:25:28 25 4
gpt4 key购买 nike

当我向 CheckedListBox 列表框中添加一个项目时,我还想存储对另一个对象的引用。我尝试将此对象的新实例添加到 CheckedListBox。

public class CheckedListBoxExtention : CheckedListBox
{
private ReferenceItem _referenceItem;
public ReferenceItem storedItem
{
get { return _referenceItem; }
set { _referenceItem = value; }
}
public CheckedListBoxExtention(ReferenceItem storedItem)
{
_referenceItem = storedItem;
}
}

稍后当我 foreach 遍历 CheckedListBox 中的项目时,这会起作用,我有一个对 _referenceItem 对象的引用。但是,当我添加这样的项目时,CheckedListBox 显示为空白(GUI 本身中的列表)。所以我试图找到一种方法来覆盖项目文本或类似的东西。


这是我用来解决问题的代码

    class ReferenceItemWrapper
{
private ReferenceItem _item;
public ReferenceItemWrapper(ReferenceItem item)
{
_item = item;
}
public ReferenceItem getItem
{get {return _item;}}
public override string ToString()
{
return _item.ToString();
}
}

我对包装器有点陌生。为什么当我将ReferenceItem直接添加到CheckedListBox时它不起作用,而它包装后却起作用了?

最佳答案

CheckedListBox 使用列表中对象的 ToString 方法来填充框中的标题。与其扩展 CheckedListBox,不如创建一个包装类,让您可以存储引用和标题,并实现返回标题的 ToString 方法。只需创建一个包装对象,将文本粘贴到其中,将引用粘贴到其中,然后将包装对象添加到列表框中。

关于c# - 为 (CheckedListBox).Items.Add() 使用自定义对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6879776/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com