簡體   English   中英

C#覆蓋CheckedListBox

[英]C# Override CheckedListBox

我需要重寫基本CheckedListBox行為。

可以檢查和取消選中沒有附加任何代碼的CheckedListBox。

我需要禁用此行為,以便我可以實現自定義代碼。

有任何想法嗎?

謝謝。

例如:

如果(ListenCheckedListBox.GetItemChecked(0)){ListenCheckedListBox.SetItemChecked(0,false); }

如果(!ListenCheckedListBox.GetItemChecked(0)){ListenCheckedListBox.SetItemChecked(0,true); }

不起作用,因為控件的默認行為無論如何已經做到了。

希望你現在能理解我的問題。

您可以通過從內置類繼承並覆蓋相關方法來創建自己的CheckedListBox。

據我了解您的問題,您不希望用戶單擊它們時選擇這些項目,而是希望完全從代碼中控制選擇。

為此,您可以重寫OnItemCheck方法,並控制正在設置的新值:

public class CheckedListBoxEx : CheckedListBox
{
    protected override void OnItemCheck(ItemCheckEventArgs ice)
    {
        ice.NewValue = ice.CurrentValue;
    }
}

這也可以通過簡單地處理ItemCheck事件來完成。

好吧,我想通了。 我看錯了。 我只是處理檢查狀態,而不是定義它兩次。 一次由我控制。

是的,我很傻!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM