是否可以将选中的列表视图项设置为混合状态?

发布于 2024-07-25 23:01:53 字数 320 浏览 12 评论 0 原文

CheckBox 控件公开布尔型 CheckedSystem.Windows.Forms.CheckState 枚举 CheckState 属性,这些属性允许您将控件设置为选中、未选中或混合状态(不确定枚举值)。

我想将 ListView 项的状态设置为 Instituteate,但似乎只有 Checked 属性可用。 那么,有没有办法将其设置为混合,可能通过窗口消息传递或类似的技巧?

The CheckBox control exposes both boolean Checked and System.Windows.Forms.CheckState enum CheckState properties, which allow you to set the control to either checked, unchecked, or mixed state (Indeterminate enum value).

I want to set a ListView item's state to Indeterminate, but only the Checked property seems to be available. So, is there a way to set it to mixed, possibly by window messaging or similar tricks?

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

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

发布评论

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

评论(3

牵强ㄟ 2024-08-01 23:01:53

那么,您可以使用以下解决方法:

  1. 创建具有 3 个状态的状态 ImageList(您可以使用 CheckBoxRenderer)
  2. 将此图像列表分配给列表视图
  3. 然后您需要处理 OnMouseDown (或 OnMouseClick) 和 OnKeyDown 事件并移动所需列表项的状态图像

当然您还需要编写几个辅助方法来获取检查状态等。但总的来说,这个解决方案相对容易实现。

实际上ListView的内部实现也是如此,但是这个逻辑隐藏在comctl32.dll中。

Well, you can use the following workaround:

  1. Create state ImageList with 3 states (you can take create images using CheckBoxRenderer)
  2. Assign this image list to list view
  3. Then you need to handle OnMouseDown (or OnMouseClick) and OnKeyDown events and shift state images for needed list item

Of course you also need to write several helper methods to get checked state, etc. But in general this solution is relatively easy to implement.

Actually internal ListView implementation do the same, but this logic is hidden inside comctl32.dll.

在你怀里撒娇 2024-08-01 23:01:53

ObjectListView(.NET WinForms ListView 的开源包装器)支持带有复选框混合状态。

查看演示的“简单”选项卡以了解它们的实际效果。

(完成工作后,我不得不说它并不像仲裁者建议的那么容易)

ObjectListView (an open source wrapper around .NET WinForms ListView) supports check boxes with mixed state.

Have a look at the Simple tab of the demo to see them in action.

(Having done the work, I have to say that it is not as easy as arbiter suggests)

生生漫 2024-08-01 23:01:53

ListView 没有不确定的状态。

ListView does not have indeterminate state.

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