【问题标题】:Adding a checkbox to a databound DataGridView向数据绑定 DataGridView 添加复选框
【发布时间】:2014-08-09 16:39:45
【问题描述】:

我正在使用 C# 中的 DataGridView。我使用 BindingSource 用数据库中的表填充它。填充 DataGridView 后,我需要添加一行应该在表中首先出现的复选框,以便将来启用数据过滤。

我的意思是:例如,单击“加载”按钮后,DataGridView 填充了 4 列数据,第一行应包含复选框。

我很困惑。我用

DataGridViewCheckBoxCell checkCell = new DataGridViewCheckBoxCell();
SourceDGV.Rows.Add(checkCell);

我的意思是:

但点击加载按钮后显示You can't add rows to databounded DataGridView

如果 ecxeption 翻译有误,我很抱歉,我是从乌克兰语翻译过来的。

任何帮助表示赞赏。

【问题讨论】:

  • 您不能在数据绑定数据网格视图中添加自定义复选框行。使其解绑并手动添加所有行或更改界面的逻辑
  • @Vland thanx,我知道,但是没有办法吗? B/c 一开始我不知道我会得到多少列
  • a) 要添加到数据绑定 dgv,您需要实际添加到数据源。 b)所有行在相同的相应列中具有相同的数据类型,因此正如 sriram 所说,此功能仅在 DVG 中不可用。

标签: c# winforms checkbox datagridview


【解决方案1】:

恐怕,DataGridView 中没有整行是某种类型的概念(在您的情况下是复选框)。这是另一种方式。您可以将整列设为复选框类型。你会使用DataGridViewCheckBoxColumn

在整行中显示复选框对我来说毫无意义:假设您有数据将Person 对象绑定到DataGridView。所以会有像NameAgeAddress这样的列。现在,您在行中显示复选框的依据是什么?如何将名称转换为bool(复选框需要作为值)?

我能想到的一个解决方法是,处理自定义绘画,如果在那里第一行绘画复选框并手动处理他们的点击事件。但我很确定这并不容易。

【讨论】:

  • 我需要有一排复选框而不是列。谢谢
  • @Daria 没有开箱即用的功能。你需要自己动手。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多