devExpress Xtragrid:如何获取/设置位于索引n的rowheight

时间:2014-10-23 03:48:05

标签: winforms gridview devexpress xtragrid

我正在使用devExpress gridview,我想获取/设置索引我拥有的任何行的行高。例如,我有一个包含50条记录的gridview,我想增加我点击的任何行的高度。我可以在单击但无法设置行高的情况下获取rowindex。 我正在使用devExpress 13 for windows form application。

1 个答案:

答案 0 :(得分:2)

要完成此任务,请将以下帮助程序类添加到项目中:

   public class GridRowZoomHelper
{
    public GridView GridView { get; set; }

    public int ZoomedRowHeight { get; set; }
    private int _ZoomedRowHandle;
    public int ZoomedRowHandle
    {
        get
        {
            return _ZoomedRowHandle;
        }
        set
        {

            if (_ZoomedRowHandle == value)
                return;
            var prevValue = _ZoomedRowHandle;
            _ZoomedRowHandle = value;
            OnZoomedRowHandleChanged(prevValue, value);
        }
    }
    public GridRowZoomHelper(GridView gridView)
    {
        GridView = gridView;
        ZoomedRowHeight = 60;
        ZoomedRowHandle = GridControl.InvalidRowHandle;
        GridView.RowClick += GridView_RowClick;
        GridView.CalcRowHeight += GridView_CalcRowHeight;
        GridView.ShownEditor += GridView_ShownEditor;
    }

    void GridView_ShownEditor(object sender, EventArgs e)
    {
        ZoomedRowHandle = GridView.FocusedRowHandle;
    }

    void GridView_CalcRowHeight(object sender, RowHeightEventArgs e)
    {
        if (e.RowHandle == ZoomedRowHandle)
            e.RowHeight = ZoomedRowHeight;
    }

    void GridView_RowClick(object sender, RowClickEventArgs e)
    {
        ZoomedRowHandle = e.RowHandle;
    }

    private void OnZoomedRowHandleChanged(int prevValue, int value)
    {
        GridView.RefreshData();
    }
}

然后,按以下方式注册:

  new GridRowZoomHelper(gridView1).ZoomedRowHeight = 60;

因此,单击一行将自动增加其高度:

Auto row zoom