【问题标题】:Windows Forms ListView always return Item.Checked = trueWindows 窗体 ListView 始终返回 Item.Checked = true
【发布时间】:2022-01-17 14:38:19
【问题描述】:

我在我的 ListView 中遇到问题,这总是返回 (All True) 关于未选中。

foreach (ListViewItem item in listViewNotifications.Items)
{
    //I have 5 items all are true
    if (item.Checked == false) continue;
}

foreach (ListViewItem item in listViewNotifications.CheckedItems)
{
    //I have 5 items all are true here I get 5
}

我错过了什么?

【问题讨论】:

  • 你是如何测试它得出的结果都是 Checked 的?
  • 嗨@MongZhu 我有5个项目,然后我一一点击取消选中
  • 我说的是循环,你是如何验证循环内部都被检查的?
  • 我想我找到了问题所在。我稍后会填充 ListView,所以如果我 Refresh() ListView 它会采用原始​​状态。我正在寻找一种方法来改变点击(检查状态)。
  • @MongZhu 我只是回答我的问题

标签: c# winforms listview


【解决方案1】:

如果您在前一刻填充了 Windows.Forms.ListView,则 Checked State 不会更新,所以我不得不在 ItemClick 上强制它

private void listViewNotifications_ItemChecked(object sender, ItemCheckedEventArgs e)
{
    if (e.Item.Checked == true)
    {
        e.Item.Checked = false;
        listViewNotifications.Update();
    }
    else
    {
        e.Item.Checked = true;
        listViewNotifications.Update();
    }
}

可以是任何最佳解决方案,但我没有任何问题可以分享,即使用户标记问题“没有研究工作”,我也没有发现任何相关内容。

如果您找到更好的解决方案,请分享。

【讨论】:

    猜你喜欢
    • 2011-05-09
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多