DevExpress XtraGrid使行可见

DevExpress XtraGrid使行可见,devexpress,xtragrid,Devexpress,Xtragrid,编辑:问题与我调用该方法时有关。如果我等待表单显示,并从表单本身的菜单中调用该方法,它就会工作。但是,如果我将行设置为在窗体完成渲染之前显示,它将不起作用。XtraGrid完成渲染后是否引发事件 我没有成功地使用其行句柄使网格中的特定行可见。我尝试了GridView的MakeRowVisible方法,还简单地设置了ColumnView的FocusedRowHandle属性,这两种方法都应该将指定的行带入视图 注意:使用ColumnView.FocusedRowHandle对焦行时 属性,视图将自

编辑:问题与我调用该方法时有关。如果我等待表单显示,并从表单本身的菜单中调用该方法,它就会工作。但是,如果我将行设置为在窗体完成渲染之前显示,它将不起作用。XtraGrid完成渲染后是否引发事件

我没有成功地使用其行句柄使网格中的特定行可见。我尝试了GridView的MakeRowVisible方法,还简单地设置了ColumnView的FocusedRowHandle属性,这两种方法都应该将指定的行带入视图

注意:使用ColumnView.FocusedRowHandle对焦行时 属性,视图将自动显示 使指定的行在上可见 屏幕。MakeRowVisible方法是 用于此目的。所以,你不知道 必须使用MakeRowVisible方法 如果需要聚焦目标行。 只需指定所需的行句柄 转到ColumnView.FocusedRowHandle 财产。

我一定错过了一些基本的东西。 谢谢你的帮助

 public void SetVisibleRow(int customerid)
        {

         DevExpress.XtraGrid.Views.Base.ColumnView  vw;
         vw = (DevExpress.XtraGrid.Views.Base.ColumnView) MyGrid.DefaultView;

          for ( int i = 0; i < vw.DataRowCount;  i++)
            {
                 if ((int)vw.GetRowCellValue(i, "custid") == customerid)      
                  {
                    // DevExpress.XtraGrid.Views.Grid.GridView gv;
                    // gv =  (DevExpress.XtraGrid.Views.Grid.GridView) MyGrid.DefaultView;
                    // gv.MakeRowVisible(i,false);

                    vw.FocusedRowHandle = i;
                    break;
                  }
            }

        }
public void SetVisibleRow(int customerid)
{
DevExpress.XtraGrid.Views.Base.ColumnView vw;
vw=(DevExpress.XtraGrid.Views.Base.ColumnView)MyGrid.DefaultView;
对于(int i=0;i
如果在网格的加载事件中调用该方法,问题就解决了。

如果在表单的
OnLoad
事件中调用
SetVisibleRow
方法,请确保首先调用网格控件的
ForceInitialize
方法

        gridView.ClearSelection();
        gridView.SelectRow(rowHandle);
        gridView.FocusedRowHandle = rowHandle;
        gridView.TopRowIndex = rowHandle;