【问题标题】:DevExpress XtraGrid MakeRowVisibleDevExpress XtraGrid MakeRowVisible
【发布时间】:2011-06-28 18:13:54
【问题描述】:

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

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

注意:使用 ColumnView.FocusedRowHandle 聚焦一行时 属性,自动查看 使指定的行在 屏幕。 MakeRowVisible 方法是 用于此目的。所以,你不 必须使用 MakeRowVisible 方法 如果您需要关注目标行。 只需分配所需的行句柄 到 ColumnView.FocusedRowHandle 财产。 http://documentation.devexpress.com/#WindowsForms/DevExpressXtraGridViewsGridGridView_MakeRowVisibletopic

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

 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;
                  }
            }

        }

【问题讨论】:

    标签: devexpress xtragrid


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      如果在网格的Load事件中调用该方法,问题就解决了。

      【讨论】:

        【解决方案3】:
                gridView.ClearSelection();
                gridView.SelectRow(rowHandle);
                gridView.FocusedRowHandle = rowHandle;
                gridView.TopRowIndex = rowHandle;
        

        【讨论】:

          猜你喜欢
          • 2017-01-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多