【发布时间】:2014-10-23 03:48:04
【问题描述】:
我正在使用 devExpress gridview,我想为我拥有索引的任何行获取/设置行高。例如,我有一个包含 50 条记录的 gridview,我想增加我单击的任何行的高度。我可以在单击的位置获取 rowindex,但无法设置行高。 我正在将 devExpress 13 用于 Windows 窗体应用程序。
【问题讨论】:
标签: winforms gridview devexpress xtragrid
我正在使用 devExpress gridview,我想为我拥有索引的任何行获取/设置行高。例如,我有一个包含 50 条记录的 gridview,我想增加我单击的任何行的高度。我可以在单击的位置获取 rowindex,但无法设置行高。 我正在将 devExpress 13 用于 Windows 窗体应用程序。
【问题讨论】:
标签: winforms gridview devexpress xtragrid
要完成此任务,请将以下帮助程序类添加到您的项目中:
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;
因此,点击一行会自动增加其高度:
【讨论】: