我编写了以下代码来隐藏特定的列:
(_view as BandedGridView).Columns[j].VisibleIndex = -1;
这起作用了但是,我想通过以下代码更改列的顺序:
(_view as BandedGridView).Columns[j].VisibleIndex = i;
但这并不奏效寻求帮助,谢谢
h22fl7wq1#
根据documentation,为VisibleIndex属性分配大于-1的值,尝试移动列没有效果:将VisibleIndex属性设置为-1将隐藏该列。在这种情况下,列标题显示在自定义窗体中(前提是启用了列的OptionsColumn.ShowInCustomizationForm选项)。
VisibleIndex
请注意,指定大于-1的值无效。若要在带状网格视图中更改列在可见列中的位置,请使用GridBandColumnCollection.MoveTo方法。
假设你在设计器中有一个GridBand:
private DevExpress.XtraGrid.Views.BandedGrid.GridBand GridBand1;
您可以使用MoveTo方法来更改列位置:
MoveTo
GridBand1.Columns.MoveTo(i, [BandedGridColumn]);
注意:[BandedGridColumn]是指在设计器中声明的DevExpress.XtraGrid.Views.BandedGrid.BandedGridColumn对象名称。类似问题:Strange Behavior when setting VisibleIndex in BandedGridView after user customization
[BandedGridColumn]
DevExpress.XtraGrid.Views.BandedGrid.BandedGridColumn
zyfwsgd62#
GridCell CurrentCell { get; set ; } private void gridView1_MouseDown(object sender, MouseEventArgs e) { if (e.Button == System.Windows.Forms.MouseButtons.Left) { CurrentCell = null; GridHitInfo hitInfo = gridView1.CalcHitInfo(e.Location); if (hitInfo.HitTest == GridHitTest.RowCell) { CurrentCell = new GridCell(hitInfo.RowHandle, hitInfo.Column); } } }
结果:gridView1.FocusedRowHandle = CurrentCell.RowHandle;
2条答案
按热度按时间h22fl7wq1#
根据documentation,为
VisibleIndex
属性分配大于-1的值,尝试移动列没有效果:将VisibleIndex属性设置为-1将隐藏该列。在这种情况下,列标题显示在自定义窗体中(前提是启用了列的OptionsColumn.ShowInCustomizationForm选项)。
请注意,指定大于-1的值无效。若要在带状网格视图中更改列在可见列中的位置,请使用GridBandColumnCollection.MoveTo方法。
假设你在设计器中有一个GridBand:
您可以使用
MoveTo
方法来更改列位置:注意:
[BandedGridColumn]
是指在设计器中声明的DevExpress.XtraGrid.Views.BandedGrid.BandedGridColumn
对象名称。类似问题:
Strange Behavior when setting VisibleIndex in BandedGridView after user customization
zyfwsgd62#
结果:gridView1.FocusedRowHandle = CurrentCell.RowHandle;