多"列"DataGridView C#

Wes*_*ley 5 .net datagridview winforms

我有一个绑定到DataSet的DataGridView.它有DateCreated,Weight,DateUsed列.这三列不占用几乎全屏的DataGridView上的水平空间.如果视图足够宽以支持第二组这些列,是否可以将这些列回绕到顶部.因此,在标题中,它将显示DateCreated,Weight,DateUsed,DateCreated,Weight,DateUsed.然后,当单击一行时,只会突出显示3个单元格,而不是全部六个单元格.有什么东西可以提供这种功能吗?

Pau*_*ams 2

我不知道有什么类似的开箱即用的东西。

你可以自己创造这种效果。您需要将实际数据与数据表示解耦。您需要将它们合并在一起以在单行上显示多行,而不是每个网格行使用一个 DataRow。

所以你的辅助方法可能会执行以下操作:

  • 将 DataGridView 的宽度与行数进行比较
  • 确定有多少 DataRows 列可见
  • 使用额外的列集构建一个新的 DataTable 来表示每一列
    • 示例:创建日期 1、权重 1、使用日期 1、创建日期 2、权重 2、使用日期 2 等。
  • 使用原始数据集填充数据表
  • 将 DataGridView 绑定到新表

一些考虑因素:用户可以对数据进行排序吗?如果是这样,你就必须自己写。

您是否需要能够使用此视图添加新行?从这种观点来看,这听起来很困难。