我知道这个问题似乎很简单,但我找不到解决方案。我的表单中有 CheckdListBox。我有里面的复选框列表。如果我这样做:clbxMyControl.Enabled = false; 那么我无法滚动查看所有项目。如何允许在禁用的 CheckedListBox 上滚动?

谢谢!

最佳答案

您可以使用 ItemCheck 事件阻止用户检查项目:

    bool listEnabled = true;

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

但是一定要确保检查不再有效:
    private void setListEnabled(bool enabled) {
        listEnabled = enabled;
        if (listEnabled) checkedListBox1.BackColor = Color.FromKnownColor(KnownColor.Window);
        else checkedListBox1.BackColor = Color.FromKnownColor(KnownColor.Control);
    }

关于c# - 如何禁用 CheckedListBox 但启用滚动 winforms,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9818983/

10-10 06:00