Unfortunately, there is no easy way to achieve this task. However, you can implement it using reflections. Please see the sample below:
[C#]
using System.Reflection;
using DevExpress.XtraGrid.Views.Grid.ViewInfo;
using DevExpress.XtraGrid.Views.Grid;
using DevExpress.XtraGrid.Scrolling;
......................
Type type = gridView1.GetType();
FieldInfo fi = type.GetField("fViewInfo", BindingFlags.NonPublic | BindingFlags.Instance);
GridViewInfo info = fi.GetValue(gridView1) as GridViewInfo;
fi = type.GetField("fScrollInfo", BindingFlags.NonPublic | BindingFlags.Instance);
ScrollInfo scrollInfo = fi.GetValue(gridView1) as ScrollInfo;
int height = info.CalcRealViewHeight(new Rectangle(0, 0, Int32.MaxValue, Int32.MaxValue));
if (scrollInfo.HScrollVisible)
height += scrollInfo.HScrollRect.Height;
gridControl1.Height = height;
[VB.NET]
Imports System.Reflection
Imports DevExpress.XtraGrid.Views.Grid.ViewInfo
Imports DevExpress.XtraGrid.Views.Grid
Imports DevExpress.XtraGrid.Scrolling
........................
Dim type As Type = GridView1.GetType()
Dim fi As FieldInfo = type.GetField("fViewInfo", BindingFlags.NonPublic Or BindingFlags.Instance)
Dim info As GridViewInfo = CType(fi.GetValue(GridView1), GridViewInfo)
fi = type.GetField("fScrollInfo", BindingFlags.NonPublic Or BindingFlags.Instance)
Dim scrollInfo As ScrollInfo = CType(fi.GetValue(GridView1), ScrollInfo)
Dim height As Integer = info.CalcRealViewHeight(New Rectangle(0, 0, Int32.MaxValue, Int32.MaxValue))
If (scrollInfo.HScrollVisible) Then
height += scrollInfo.HScrollRect.Height
End If
GridControl1.Height = height
Note:
Since version 6.1 the name of the "fScrollInfo" private member (in the line "fi = type.GetField("fScrollInfo"...")has been changed to "scrollInfo".
Also, you can get the GridViewInfo object without reflection using the following code:
[C#]
GridViewInfo info = gridView1.GetViewInfo() as GridViewInfo;
[VB.NET]
Dim info As GridViewInfo = CType(GridView1.GetViewInfo(), GridViewInfo)