【问题标题】:How do I join an unbound Data Column at the end of the bound DataColumns in DataGridView?如何在 DataGridView 中绑定 DataColumns 的末尾加入未绑定的数据列?
【发布时间】:2019-04-02 11:23:59
【问题描述】:

我有一个 DataGridView,我想在其中加入一个未绑定的数据列,名为 Total Price

我可以使用 DataGridView 设计器添加未绑定的列,但是,当我将绑定的列加载到 DataGridView 中时,Total Price 列位于网格的最左侧。

我希望它位于网格的最右侧。
我找不到任何方法来格式化 Visual Studio 中的未绑定列。

有没有办法对列的位置进行编码,或者设计器是否有内置函数来移动列的位置?

【问题讨论】:

  • 欢迎来到 SO!请阅读:how-to-ask 并根据说明更正您的问题
  • 您可以将该列的 DisplayIndex 设置为另一个值。例如,dataGridView1.Columns(0).DisplayIndex = dataGridView1.Columns.Count - 1。或者在设置 DGV 的 DataSource 后,使用 Columns 集合的 Add 方法将其添加到代码中。例如,DataGridView1.Columns.Add(New DataGridViewColumn() With {.Name = "Some Name", .DisplayIndex = [The Column Position]}) 等。
  • @Jimi 谢谢!!!你能把它写成答案让我接受吗
  • 好的,我已经添加了一些关于这个问题的注释。如果您有任何问题,请对答案发表评论。

标签: c# winforms datagridview


【解决方案1】:

可以通过不同的方式确定 Column 在 DataGridView 中的位置:

  1. 在设计器中设置所需的顺序。
  2. AllowUserToOrderColumns 属性设置为true,这允许通过用鼠标拖动列来重新排序列。
  3. 以特定顺序在代码中添加列。
  4. 设置列的DisplayIndex 属性,以在运行时修改列在网格中的位置。
    注意:更改DisplayIndex 属性会修改网格中的位置,它不会更改列的索引

将现有列移动到网格中的最后一个位置:
(第一列将成为最后一列)

dataGridView1.Columns[0].DisplayIndex = dataGridView1.Columns.Count - 1

如前所述,Column[0]即使显示在最后一个位置,仍然会有index = 0所以,仍然 Column[0]

在代码中添加一个新列并设置它在网格中的位置:
(新的TextBoxColumn有一个名字,一个Column Header文本并且占据了网格布局的第一个位置)

dataGridView1.Columns.Add(new DataGridViewTextBoxColumn() {
    Name = "NewColumn",
    HeaderText = "New Column",
    DisplayIndex = 0,
});

【讨论】:

    猜你喜欢
    • 2013-01-15
    • 1970-01-01
    • 2011-02-25
    • 1970-01-01
    • 1970-01-01
    • 2016-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多