2

基本の CheckedListBox の動作をオーバーライドする必要があります。

コードを添付せずに CheckedListBox をチェックおよびチェック解除することができます。

カスタム コードを実装できるように、この動作を無効にする必要があります。

何か案は?

ありがとう。.

例えば:

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

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

いずれにせよ、コントロールのデフォルトの動作がすでにこれを行っているため、機能しません。

うまくいけば、あなたは今私の問題を理解することができます.

4

2 に答える 2

0

わかりました。私はそれを間違って見ていた。2回定義するのではなく、チェックされた状態を処理するだけです。1回目はコントロールで、2回目は私です。

はい、私はばかげていました!

于 2010-01-09T16:50:44.377 に答える
0

組み込みクラスから継承し、関連するメソッドをオーバーライドすることで、独自の CheckedListBox を作成できます。

あなたの質問を理解しているので、ユーザーがアイテムをクリックしたときにアイテムを選択したくないので、コードから完全に選択を制御したいと考えています。

これを行うには、OnItemCheck メソッドをオーバーライドし、設定される新しい値を制御できます。

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

これは、ItemCheck イベントを処理するだけでも実行できます。

于 2010-01-09T14:52:47.517 に答える