winforms 在DevExpress控件中,BandedGridColumn的属性VisibleIndex不起作用

klh5stk1  于 2023-06-24  发布在  其他
关注(0)|答案(2)|浏览(243)

我编写了以下代码来隐藏特定的列:

(_view as BandedGridView).Columns[j].VisibleIndex = -1;

这起作用了
但是,我想通过以下代码更改列的顺序:

(_view as BandedGridView).Columns[j].VisibleIndex = i;

但这并不奏效
寻求帮助,谢谢

h22fl7wq

h22fl7wq1#

根据documentation,为VisibleIndex属性分配大于-1的值,尝试移动列没有效果:
将VisibleIndex属性设置为-1将隐藏该列。在这种情况下,列标题显示在自定义窗体中(前提是启用了列的OptionsColumn.ShowInCustomizationForm选项)。

请注意,指定大于-1的值无效。若要在带状网格视图中更改列在可见列中的位置,请使用GridBandColumnCollection.MoveTo方法。

假设你在设计器中有一个GridBand:

private DevExpress.XtraGrid.Views.BandedGrid.GridBand GridBand1;

您可以使用MoveTo方法来更改列位置:

GridBand1.Columns.MoveTo(i, [BandedGridColumn]);

注意:[BandedGridColumn]是指在设计器中声明的DevExpress.XtraGrid.Views.BandedGrid.BandedGridColumn对象名称。
类似问题:
Strange Behavior when setting VisibleIndex in BandedGridView after user customization

zyfwsgd6

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;

相关问题