该CheckBox
控件公开了布尔Checked
和System.Windows.Forms.CheckState
枚举CheckState
属性,允许您将控件设置为选中、未选中或混合状态(Indeterminate
枚举值)。
我想将ListView
项目的状态设置为Indeterminate
,但Checked
似乎只有该属性可用。那么,有没有办法将其设置为混合,可能是通过窗口消息传递或类似的技巧?
该CheckBox
控件公开了布尔Checked
和System.Windows.Forms.CheckState
枚举CheckState
属性,允许您将控件设置为选中、未选中或混合状态(Indeterminate
枚举值)。
我想将ListView
项目的状态设置为Indeterminate
,但Checked
似乎只有该属性可用。那么,有没有办法将其设置为混合,可能是通过窗口消息传递或类似的技巧?
好吧,您可以使用以下解决方法:
当然,你还需要编写几个辅助方法来获取检查状态等。但总的来说,这种解决方案比较容易实现。
实际上内部的 ListView 实现也是如此,但是这个逻辑隐藏在 comctl32.dll 中。
ObjectListView(一个围绕 .NET WinForms ListView 的开源包装器)支持具有混合状态的复选框。
查看演示的“简单”选项卡以查看它们的实际效果。
(做完工作,我不得不说这并不像仲裁人建议的那么容易)
ListView 没有不确定的状态。