4

いくつかの名前を含む Checkedlistbox を使用して winforms アプリケーションを作成しています。私が必要とするのは、チェックボックスをクリックしてチェックできないようにすることですが、コードからチェックできるようにすることです。

をfalseに設定しようとし.CheckOnClickましたが、チェックボックスは2回目のクリックでもチェックされます。

次の質問から解決策を試しました: チェックリストボックスのチェックボックスを無効にする方法は? しかし、これにより、コードからのチェック機能も無効になりました..

ボックス全体を無効にすることはできません。これにより、アプリケーションで重要な選択と doublemouseclick を含むすべてのイベントが無効になります。

これの解決策を知っている人はいますか?

4

2 に答える 2

4

さて、あなたがする必要があるのは、次のように、CheckedListBoxのItemCheckイベントを処理することです。

private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e)
{
    e.NewValue = e.CurrentValue;
}

コードのチェックボックスの状態を変更する場合は、イベントハンドルを一時的に削除する必要があります。

checkedListBox1.ItemCheck -= checkedListBox1_ItemCheck;
checkedListBox1.SetItemChecked(1, true);
checkedListBox1.ItemCheck += checkedListBox1_ItemCheck;

エレガントではありませんが、可能な解決策です。

于 2012-06-22T18:42:15.373 に答える
0

EnabledプロパティをFalse次のように設定します。

http://msdn.microsoft.com/en-us/library/system.windows.forms.control.enabled.aspx

于 2012-06-22T18:24:33.133 に答える