首页 > 解决方案 > 从复选框覆盖 GetItemCheckState()

问题描述

有没有办法GetItemCheckState(i)从 CheckedListBox 覆盖?我正在尝试使一个类具有一个完全相同的自定义 CheckedListBox,但是当我调用GetItemCheckState(i)而不是返回字符串Checked或者Unchecked我希望它返回 booltruefalse. Visual Studio 告诉我覆盖修饰符对此项无效,有什么办法解决这个问题吗?

[编辑] 我找到了一种解决方法,但我不确定它是否会导致某种问题,我不知道它是否是最优雅的解决方案,所以几乎还是同样的问题,有更好的解决方法吗?

我做了什么:

public class ExCheckedListBox : CheckedListBox
    {

        public bool GetItemCheckState2(int index)
        {
            string aux = (this.GetItemCheckState(index)).ToString();
            if(aux == "Checked")
            {
                return true;
            }
            else if(aux == "Unchecked")
            {
                return false;
            }
            return false;
        }
    }

标签: c#overridingcheckedlistbox

解决方案


正如 LarsTech 和 Ben Voigt 所说,GetItemChecked(#)或者GetItemCheckState(index) != CheckState.Unchecked;解决了我的问题。


推荐阅读