CheckedListBox 中不可选中的项目?

发布于 2024-07-11 04:22:33 字数 129 浏览 11 评论 0原文

在.NET框架中,是否可以将CheckedListBox中的某些项目设置为“不可选中”? 我不想允许用户再次检查相同的项目并将它们添加到另一个现有列表中。

我希望我说清楚了。 提前致谢。

In .NET framework, is it possible to set some of the items in the CheckedListBox as "uncheckable" ? I don't want to allow user to check the same items again and add them to a another existing list.

I hope I am clear.
Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

旧人哭 2024-07-18 04:22:33

我会在代码中将这些项目设置为“不确定”,然后当用户尝试检查/取消选中它们时,覆盖 ItemCheck 事件中的“NewValue”属性:

public Form1()
{
    InitializeComponent();
    checkedListBox1.Items.Add("Can't check me", CheckState.Indeterminate);
}

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

CheckedListBox 中的“无法检查我”项目不能已修改,因为每次用户尝试选中/取消选中它时,事件处理程序都会将其更改回来。 您甚至看不到 UI 相应更新。

I would set those items as "Indeterminate" in code, and then overwrite the "NewValue" property from the ItemCheck event when the user attempts to check/uncheck them:

public Form1()
{
    InitializeComponent();
    checkedListBox1.Items.Add("Can't check me", CheckState.Indeterminate);
}

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

The "Can't check me" item in the CheckedListBox can't be modified, because every time the user tries to check/uncheck it, the event handler changes it back. You don't even see the UI update accordingly.

音盲 2024-07-18 04:22:33

马特的代码很好。

然而,为什么在选中列表框中有一个项目而不让它被选择呢?
我的意思是为什么在列表中包含该项目。

Matt's code is good.

Yet, why have an item in the checkedlistbox and not let it be selected?

I mean why have that item in the list.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文