我有一个带有
列的datagridviewcol A | col B | ... | col M | col N
现在我要冻结右侧的col N
,这样当用户水平滚动数据网格视图时,列A,...,M可以水平滚动,但col N
仍然处于冻结状态。
现在我尝试为Frozen
设置col N
属性,但冻结列左侧的所有列也都被冻结,这是我不想要的。
我能够提出的最好的方法是反转绑定到DataGridView的DataTable的列,以便它现在具有顺序
col N | col M | ... | col B | col A
然后从RightToLeft
绘制DataGridView,以便再次反转列,然后显示为
col A | col B | ... | col M | col N
我尝试的另一个解决方案是提取必须冻结的最右边的列,并将它们放在右侧的不同DataGridView和原始DataGridView中的其余列,然后同步它们的垂直滚动。 现在我的问题是有没有更好的方法来做到这一点,如果不是我更喜欢上面哪一个?
或换句话说:
如何在不冻结其他列的情况下冻结datagridview右侧的列?
答案 0 :(得分:1)
joe,在c#DataGridView
中你可以冻结表格中间的列,只在它的开头,就像在excel中一样。这是有道理的,因为如果我们冻结中间列,那么我们不知道它应该如何反应。我们需要两个不同侧面的滚动条吗?
来自here你可以看到它是c#想要的行为:
当列被冻结时,其左侧(或从右到左语言的右侧)的所有列也将被冻结。冷冻和未冷冻的柱子形成两组。如果通过将AllowUserToOrderColumns属性设置为true来启用列重新定位,则用户无法将列从一个组拖到另一个组。