【原创】DevExpress控件GridControl中的列冻结详解

本文探讨DevExpress的DxGrid控件中列冻结功能的使用技巧。针对冻结和取消冻结时列位置变化的问题,提供了一种正确的解决方案,确保取消冻结后列的位置与冻结前保持一致。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    DevExpress控件组是一个非常强大的控件集,尤其是其中的DxGrid异常的强大,给我们这些开发者提供了很方便的开发平台。

GridView是GridControl中的一个View类型,其中的列有冻结功能,但近期在使用时发现一个问题,冻结可以,但取消冻结就会出现列位置移动的问题。

列的冻结有三种类型:左冻结、右冻结、无冻结。

我的操作是这样的: 

                //冻结有焦点的列
int fixcolumn = 0;
GridColumn column
= m_gridView.FocusedColumn;
if (column == null)
return;
fixcolumn
= column.VisibleIndex;
for (int i = 0; i < fixcolumn; i++)
{
m_gridView.VisibleColumns[i].Fixed
= DevExpress.XtraGrid.Columns.FixedStyle.Left;
}


//取消冻结【说明:以下这种取消冻结后,就会出现列的位置倒置的情况】
for (int i = 0; i < fixcolumn; i++)
{
m_gridView.VisibleColumns[i].Fixed
= DevExpress.XtraGrid.Columns.FixedStyle.None;
}
                         //正确的取消冻结[倒置进行取消冻结],这样就可以保证冻结前与冻结后的列的位置保持一致
                 for (int i = fixcolumn; i >=0 ; i--)
                {
                    m_gridView.VisibleColumns[i].Fixed
=DevExpress.XtraGrid.Columns.FixedStyle.None;
                }

从DXGRID中的DEMO中的FixedColumn程序中就可以了解到,因为dxgrid中的冻结是在列的属性,当冻结一个列时则此列就会自动的靠到对应的左或右,当冻结为

none时则此列不会返回之前的列的位置,而是保持原状。

2011030511033281.png

具体可以在demo中进行测试.

转载于:https://www.cnblogs.com/martintuan/archive/2011/03/05/1971457.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值