2

我有一个带有列的datagridview

col A | col B | ... | col M | col N 

现在我想col N在右侧冻结,这样当用户水平滚动 datagridview 时,列 A、...、M 可以水平滚动,但col N保持冻结状态。

现在我尝试设置Frozen属性,col N但冻结列左侧的所有列也都被冻结,这是我不想要的。我能想到的最好的方法是反转绑定到 DataGridView 的 DataTable 的列,以便它现在具有顺序

col N | col M | ... | col B | col A

然后从中绘制 DataGridViewRightToLeft以便再次反转列,然后显示为

col A | col B | ... | col M | col N 

我尝试的另一个解决方案是提取必须冻结的最右边的列,并将它们放在右侧的不同 DataGridView 中,并将其余列放在原始 DataGridView 中,然后同步它们的垂直滚动。现在我的问题是有没有更好的方法来做到这一点,如果没有,我应该更喜欢以上哪一个?

或者换句话说:

如何冻结 datagridview 右侧的列而不冻结其他列?

4

1 回答 1

1

joe,在 c# 中,DataGridView你可以冻结表格中间的列,只在它的开头,就像在 excel 中一样。这是有道理的,因为如果我们冻结中间列,那么我们不知道它在侧面应该如何反应。我们需要两个滚动条用于不同的侧面吗?

这里你可以看到这是 c# 想要的行为:

当一列被冻结时,它左侧的所有列(或从右到左的语言中的右侧)也将被冻结。冻结和解冻列形成两组。如果通过将 AllowUserToOrderColumns 属性设置为 true 来启用列重新定位,则用户无法将列从一个组拖到另一个组。

于 2013-07-29T12:42:22.380 回答