1

編集:この問題は、メソッドを呼び出しているときに関係があります。フォームが表示されるのを待って、フォーム自体のメニューからメソッドを呼び出すと、機能します。ただし、フォームのレンダリングが完了する前に行を表示するように設定すると、機能しません。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;
                  }
            }

        }
4

3 に答える 3

1

メソッドがグリッドのLoadイベントで呼び出されると、問題は解決します。

于 2011-06-28T18:58:59.767 に答える
1

SetVisibleRowフォームのイベントでメソッドを呼び出す場合はOnLoad、必ずForceInitialize最初にグリッドコントロールのメソッドを呼び出してください。

于 2011-07-08T21:32:47.080 に答える
0
        gridView.ClearSelection();
        gridView.SelectRow(rowHandle);
        gridView.FocusedRowHandle = rowHandle;
        gridView.TopRowIndex = rowHandle;
于 2015-02-16T15:48:47.870 に答える