c# - DataGridViewComboBoxColumn [Windows 窗体] 中的 CheckBox 列表
问题描述
我试图在 DataGridView 中显示一个由多个 CheckBox(CheckBox 列表)组成的下拉列表。具体来说,DataGridView 提供了一个 DataGridViewComboBoxColumn,它允许有一个包含多个项目的下拉列表。但是,如果您尝试将复选框列表添加为列的数据源,您会发现解决方案不起作用(未显示复选框)。
在以下链接中,有一个关于“常规”组合框的解决方案:https ://www.codeproject.com/Articles/31105/A-ComboBox-with-a-CheckedListBox-as-a-Dropdown
但是,我需要它用于 DataGridViewComboBoxColumn。有人知道可以做些什么来达到目标?感谢您的回答(我链接下面的代码示例)
for (int i = 0; i < dataGridView.Rows.Count; i++)
{
// Put List of Checkboxes in DataGridViewComboBoxCell for each row of the Grid
((DataGridViewComboBoxCell) dataGridView.Rows[i].Cells[1]).DataSource = new List<CheckBox> { new CheckBox(), new CheckBox(), new CheckBox(), new CheckBox() };
}
解决方案
我过去曾修改DataGridViewColumns
过(好吧,不完全是我自己,也根据一些 CodeProject 烹饪书:-)),所以我有一些想法。
但是,在这种情况下这可能行不通,这个想法有问题。您不仅需要更改单元格的外观,还需要考虑如何存储数据。您将如何为每个 DataGridViewComboboxCell
单独的数据源分配一个单独的数据源?如果可能的话,那可能是相当广泛的工作,可能是一个处理结构和事件的类。
如果我可以提供解决方案,您可以拥有另一个对象(即旁边的另一个 DataGridViwCheckBoxColumn
将TextColumn
加载 on DataGridView1.SelectionChanged
),或者您可以在该单元格上以模态形式填充它CellClick
并反馈所选项目字符串的列表关闭等。我过去多次这样做,但我认为没有easy
办法解决它。
推荐阅读
- image - 检测图像中的重复图案
- python - Python 'pandas' 在 0.23.0 版上没有属性 'ewm' 但在 0.18.0 版上没问题
- django - 在 windows 的 django 中设置一个 cron 作业
- java - Maven Dependency Plugin 如何确定使用的依赖项
- javascript - ElectronJS Webview cookie 没有被清除
- google-maps-api-3 - 聚合物 3 - 谷歌地图
- angular - 如何使用 Angular 2+ 基于动态数据创建和导出文本文件
- java - 显示导航抽屉和返回箭头的菜单项
- git - 合并后删除远程分支
- python - 如何编辑多个excel表的名称?